Ich habe eine kontinuierliche Integration für mein iOS XCode-Projekt eingerichtet, aber ich bekomme immer wieder viele Warnungen, wenn der Xcode-Bot mein Projekt erstellt. Wenn ich baue (zum Laufen, Testen oder Archivieren), bekomme ich keine Warnungen.
Ich denke, das hat etwas mit meinem Projektaufbau zu tun. Ich habe ein "inneres" Projekt in meinem Hauptprojekt, das eine Bibliothek enthält, die ich brauche. Ich baue beide Projekte für die Architektur i386
, damit sie im Simulator ausgeführt werden kann (damit der Xcode-Bot Tests ausführen kann).
Die genaue Warnung ist unten. Ich erhalte diese Warnung für jede .m
-Datei in meinem inneren Projekt.
Die meisten Google-Ergebnisse zu dieser Warnung beziehen sich auf .h
-Dateien, die irrtümlicherweise zu 'Quellen kompilieren' hinzugefügt wurden, aber meine .m
-Dateien sollten natürlich dort sein.
Auch diese Warnung erscheint nur auf dem Xcode-Server, lokale Builds sind in Ordnung. Der Build ist in Ordnung, ansonsten sind die Tests erfolgreich und ein Archiv wird erstellt. Das größte Problem ist, dass der Haufen von Warnungen alle anderen Warnungen übertönt, die das Projekt hervorbringen könnte.
Ich hatte dieses Problem auch, aber unter etwas anderen Umständen. Mit der Einbeziehung von nativen Cocoa Touch Frameworks in iOS 8 wollte ich die Verwendung eines alten, wenn auch ehrfürchtigen Hacks zum Erstellen von iOS-Frameworks auslassen. Auf diese Weise fing ich genau diese Warnung an ... TONS von ihnen! Ich habe sie gelöst, indem ich i386 und x86_64 aus "Gültige Architekturen" in den Build-Einstellungen des Ziels entfernt habe.
Ich hatte beide Architekturen im Abschnitt "Architekturen" UND in der Build-Einstellung "Gültige Architekturen" hinzugefügt, da ich sicherstellen wollte, dass diese Architekturen mir beide zur Verfügung standen, wenn ich lipo benutzte, um ein universelles zu erstellen (yup, Apple gibt uns immer noch keine Möglichkeit, dies in der Nähe zu tun, wie ich sagen kann)
Durch ENTFERNEN der Architekturen i386 und x86_64 von "Architectures" UND von "Valid Architectures". UND Einstellung "Build Active Architecture Only" auf "NO" für BEIDE Debug und Release. Ich war in der Lage, die gewünschten Ergebnisse zu erhalten, ohne die "No rule to process ..." Warnungen, die ich in meinen .m-Dateien erhielt.
Hoffe, das hilft!
Ich habe ein ähnliches Problem, obwohl es in meinem Fall mit mehreren .c-Dateien (und einer einzelnen .m-Datei) ist.
warning: no rule to process file '[...]/ioapi.c' of type sourcecode.c.c for architecture x86_64
Jetzt brauche ich natürlich die .c-Dateien und die .m-Datei, die kompiliert werden sollen.
Dies ist natürlich nicht auf .m-Dateien beschränkt. Wenn jemand Ideen für Diagnosen hat, um mehr von dem Problem herauszufinden, würde ich mich freuen, sie auszuführen.
Ich kann nicht garantieren, dass dies Ihre Version dieses Problems lösen wird. Aber ich habe endlich meine Arbeit übernommen.
Der Typ, der gesagt hat, i386 und x86_64 zu entfernen, hat einen Teil der Antwort.
In meinem Ziel setze ich den Abschnitt Architekturen wie folgt
%Vor%Ich habe dann ein anderes Target erstellt. Dies ist ein Aggregat (Datei- & gt; neu- & gt; Ziel- & gt; iOS- & gt; Sonstiges- & gt; Aggregat) Ich habe keine Änderungen an den Build-Einstellungen für dieses Ziel vorgenommen, sie wurden alle standardmäßig beibehalten. Im Abschnitt "Build-Phasen" habe ich mein bereits vorhandenes Ziel in den Bereich "Ziel-Abhängigkeiten" gezogen.
Im Abschnitt Skript ausführen habe ich Folgendes platziert:
%Vor%Ich habe versucht, die MiniZip-Bibliothek als 4-Wege-Fat-Bibliothek zu erstellen. Wenn also in meinem Skript "MiniZip" steht, werden Sie natürlich den Namen Ihres Ziels eingeben.
Und mein Endergebnis?
%Vor%Erfolg! Naja, für mich sowieso. Ich hoffe, das löst auch Ihr Problem!
Edit: Ich sollte Ray Wenderlich viel Anerkennung zukommen lassen. Mein Skript basiert auf einem, den er gepostet hat.
das gleiche Problem
%Vor%oder
%Vor%Versuchen Sie, das Projekt oder die Arbeitsumgebung zu öffnen, indem Sie "den Weg öffnen" wählen und dann Ihren Xcode
auswählenTags und Links ios xcode continuous-integration xcode-bots xcode-server