2014-12-12 12 views
6

Wir haben eine App integriert mit der heutigen Erweiterung, verwenden wir xctool und Jenkins, um kontinuierliche Build-und In-House-Verteilung zu tun.xctool Build mit der heutigen Erweiterung

In Kommandozeile, bevor wir

verwenden
xctool -workspace our_workspace.xcworkspace -scheme app_schme -xcconfig path_to_xcconfig -configuration Release build archive -archivePath path_to_archive 

Archiv zu erzeugen und dann zu .ipa exportieren, es funktioniert gut.

Aber jetzt mit der heutigen Erweiterung müssen wir es mit einem anderen Schema und xcconfig bauen, setzen wir Zertifikat und Provisioning-Profil in xcconfig, wie heutige Erweiterung ist ein neues Ziel und sollte mit einem eigenen Zertifikat und Provisioning-Profil, ich gebaut werden frage mich, wie man mit xctool arbeitet.

Jede Hilfe wird geschätzt.

Antwort

3

Endlich habe ich es geschafft, ipa-Dateien über xcodebuild zu exportieren. Da das xctool auf xcodebuild basiert, könnte diese Antwort hilfreich sein.

Zunächst wird beim Erstellen einer Erweiterung das Ziel der Erweiterung in das Schema Ihrer Haupt-App eingebettet.

enter image description here

So gibt es keine Notwendigkeit, zwei Systeme zu verwenden.

Erstellen Sie dann auf der Seite mit den Projekteinstellungen eine neue Konfiguration, z. B. AdHoc. Und dann können Sie in beiden Build-Einstellungen Ihres Ziels einen neuen Provisioning Profile festlegen.

enter image description here

(Projekteinstellungen)

enter image description here

(die Build-Einstellungen eines Ziels)

setzen Sie dann die richtigen Profile für Ihre Ziele Provisioning (Und Sie sollten besser Set die code sign identity zu automatisch, so dass Xcode bestimmen kann, welche Codezeichenidentität verwendet werden soll).

Nächster Schritt können Sie Ihre App xcodebuild mit der neuen Konfiguration archivieren Sie nur oben erstellt:

xcodebuild -project Extension\ Demo.xcodeproj -scheme Extension\ Demo -sdk iphoneos -archivePath ./Build/extension-demo.xcarchive -configuration AdHoc archive 

In diesem Schritt wird das Co-Design zwei Ihrer Ziele separat von den Provisioning-Profile unterschreiben Sie angegeben haben.

Schließlich exportieren Sie die .xcarchive Datei zu ipa, wieder mit xcodebuild;

xcodebuild -exportArchive -archivePath ./Build/extension-demo.xcarchive -exportPath ./Build/extension-demo.ipa -exportWithOriginalSigningIdentity 

Beachten Sie, dass -exportWithOriginalSigningIdentity gesetzt, so dass xcodebuild nicht Ihre ipa erneut signieren, und die Codesignatur in der xcarchive Datei erhalten bleibt.

+0

"Dann legen Sie die richtigen Provisioning-Profile für Ihre Ziele" wie es über die xcodebuild-Befehlszeile zu tun? –

+1

Sie tun dies nicht mit dem Befehl xcodebuild, stattdessen müssen Sie sie in den Build-Einstellungen von Xcode in der Konfiguration festlegen, die Sie in Schritt 1 erstellt haben (siehe Bild 3). Sie müssen die Konfiguration nur für xcodebuild angeben und es ist nicht wichtig, welches Bereitstellungsprofil es ist. –

+0

können Sie richtig sein. Ich habe es so formuliert wie du gesagt hast.Andere Wege nicht gefunden. Vielen Dank. –