Link-Fehler beim erstellen der app mit Cocoapods mit xcodebuild auf Jenkins
Ich versuche zum einrichten eines Jenkins CI-Instanz für unsere app-Entwicklung Projekt. Ich habe jobs arbeiten, führen Logik und Anwendung von tests mit dem Debug - Konfiguration, aber ich bin kämpfen, um Sie zu bauen, die IPA wie bekomme ich eine Verknüpfung-Fehler während der Kompilierung.
ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Nutzt die app Cocoapods und ich Baue mit den Jenkins-XCode-plugin.
Suchte ich nach ähnlichen Problemen und versucht/überprüft ein paar Dinge:
- Ich bin mit einem Arbeitsbereich.
- Ich bin mit
pod install
vor der xcodebuild Schritt. - Ich habe überprüft, dass Architekturen auf das Projekt selbst, das Ziel und die Kapseln sind die gleichen – standard (armv7, armv7s) – wie vorgeschlagen von diese Antwort
- Ich habe versucht, verschiedene Lösungen von diese GitHub-thread
- Ich habe versucht, verschiedene Einstellungen für Abgeleiteten Daten Standorten pro diese Antwort und ähnliche
- Das Podfile gibt
platform :ios, :deployment_target => "6.0"
Zu diesem Punkt, ich bin an einem Verlust für das, was mehr zu versuchen.
- Sind Sie sicher, dass Sie kompilieren den Arbeitsbereich und nicht das Projekt? Wenn Sie nicht bereits haben, versuchen Sie, mit der Jenkins Xcode-Plugin und geben Sie die "Xcode Workspace File". Die Xcode-plugin kann helfen, klare jegliche andere mögliche fehlleitungen, wie gut. Ich hatte das gleiche Problem Letzte Woche, verbrachte Stunden über Stunden nur zu erkennen, ich hatte Jenkins kompilieren Sie das Xcode-Projekt, nicht die Xcode-Arbeitsbereich. Auch gehen Sie zu der eigentlichen, die direkt von dem Projekt Jenkins kompilieren, öffnen Sie Sie in Xcode und sehen, wenn Sie selbst kompilieren - es wird auch einfacher für Sie, um zu Debuggen, die durch Xcode.
- Ja, auf jeden Fall mit dem Arbeitsbereich & nicht das Projekt. Als ich sage, ich habe eine sehr ähnliche Konfiguration arbeiten für das ausführen von logic & Applikations-tests in Ordnung.
- Ich sehe, ich weiß, die lästige ... in Fall, dass Sie nicht versuchen, diese, vielleicht auch noch diese Seite (#4 in den FAQ) kann helfen - github.com/CocoaPods/CocoaPods/wiki/...
- Welche version von Xcode verwenden Sie zu bauen? Es gibt einige unheimliche Begegnungen mit Xcode5 und Jenkins.
- Ich habe das gleiche problem hier seit dem Upgrade auf Xcode5. Funktioniert von Xcode, aber scheitert mit
xcodebuild
. - Haben Sie das gelöst? Ich habe das gleiche Problem!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den "Build Output Directory" - Einstellung kann auch dazu führen, diese.
Ändern des Wertes der "Build Output Directory" aus einem relativen Pfad auf eine vollständig angegebene Pfad fest für mich.
E. g. statt 'MyOutputDirectory' use '/Users/Shared/Jenkins/home/jobs/JenkinsProject/workspace/MyOutputDirectory'
Könnte das problem sein, weil Sie unterschiedliche (individuelle) build-Konfigurationen.
Werfen Sie einen Blick auf diese:
https://github.com/CocoaPods/CocoaPods/issues/121
Versuchen Sie folgenden Pfad suchen, um "Library Search Paths" (Für alle Konfigurationen)
Können Sie versuchen, wählen Sie Ihre Pods-Projekt, und legen Sie Build-Einstellungen->Build-Aktiv-Architekturen Nur->NICHT für Release und Debug, wiederholen Sie diese Aktion für jedes Ziel in Schoten.
Ich kann nicht sprechen, um die XCode-plugin, so dass meine Antwort möglicherweise als etwas reagiert, aber hier ist, wie ich es geschafft habe.
Hinzugefügt habe ich einen build-Schritt, der wie folgt aussieht:
Den -Ziel und -Ziel-timeout waren die wichtigsten Argumente bauen für den Erfolg. Mein Projekt wird nur zu bauen auf dem Handy, da es verwendet spezielle Bibliotheken, so hat mein Handy gesteckt werden, so das XCode es finden können. Sie benötigen nicht dieses, wenn Sie Ihr Projekt bauen im simulator, aber ich bekam nur es funktionieren, wenn ich explizit ein Ziel angegeben.
Wenn die XCode-plugin können Sie diesen Zustand extra kompilieren Argumente, sollten Sie versuchen, diese.
Wenn Sie mit XCode 5, dann denke ich, diese sollte helfen
grundsätzlich aktualisieren Sie Ihre Gemfile (oder erstellen Sie ein, wenn es nicht vorhanden ist) und fügen Sie hinzu:
Auch wenn Sie die Dinge wie
config.build_settings['ARCHS'] = 'armv7'
in Ihrem Podfile, vergessen Sie nicht, um es loszuwerden, müssen Sie armv7s zu.Hoffe, das hilft, denn es hat mich gerettet ein paar Tagen der Albtraum.