Wir haben eine API, die Benutzer aufrufen können, um Cordova-Apps / -Projekte zu erstellen, ihr www-Verzeichnis hochzuladen und dann mit der Kompilierung zu beginnen und die ausführbare Binärdatei herunterzuladen. Diese Binärdatei wird dann in einen privaten App Store übertragen.
Ich habe Probleme mit dem Kompilierschritt für iOS. Der Cordova-Build-Schritt ist kein Problem, aber er gibt keine Binärdatei aus, wie für Android. Nachdem ich alles gelesen hatte, was ich auf Stackoverflow und anderswo gefunden hatte, war der Plan folgender:
%Vor%Da die Signieridentität und alles korrekt eingerichtet ist, funktioniert es fast. Der erste Befehl wird ausgeführt. Der zweite Befehl hängt einfach.
Wenn ich jedoch das Projekt in Xcode öffne und dann die Befehle ausführe, kompiliere und exportiere es, und mir bleibt eine .ipa-Datei übrig, die ich wollte. Es scheint, dass Xcode beim ersten Öffnen des Projekts einen Arbeitsbereich und einige schemabezogene Dinge einrichtet.
Gibt es eine Möglichkeit, xcodebuild (oder xcrun oder irgendwas anderes) für diese Arbeitsbereichsdatei für mich zu erstellen?
Oder gibt es einen anderen Weg, um das zu erreichen?
Im Moment habe ich eine Lösung, bei der ich das Xcode-Projekt öffne, 15 Sekunden warte und dann weitermache. Aber ich kann mir tausend Möglichkeiten vorstellen, die irgendwann scheitern werden, also würde ich es gern etwas eleganter machen.
Ich habe derzeit Xcode 6.3 installiert, wenn das relevant ist.
Update: Opals Antwort unten setzte mich auf den richtigen Weg (denke ich). Am Ende habe ich ein geteiltes Schema nach Opals Link exportiert und dieses als Vorlage für zukünftige Apps verwendet. Die Lösung war etwa so:
%Vor%Dies sind die Schritte, die ich verwendet habe, um die ipa-Generierung zu automatisieren, ohne xcode in meiner Cordova-Umgebung zu öffnen. (xcode Version: 6.0.1 cordova Version: 3.6.0)
cordova build ios --device
im cordova-Arbeitsbereich aus, der die .app-Datei xcrun -sdk iphoneos PackageApplication -v ${WORKSPACE}/platforms/ios/build/device/${application.name}.app -o ${WORKSPACE}/platforms/ios/build/${application.name}.ipa --embed ${ios.distribution.provisionfile}.mobileprovision --sign ${code.signing.identity}
Tags und Links cordova ios xcode xcodebuild