2016-07-14 26 views
0

Ich versuche, ein Skript für eine ipa-Datei für meine App zu erstellen, aber ich möchte es für die Unternehmensverteilung und nicht ein Ad-hoc.Erstellen IPA für Enterprise-App und nicht eine Ad-hoc-

mein Skript ist:

# creating xcArchive file 

xcodebuild -workspace <ProjectName>.xcworkspace -scheme <SchemeName> archive \ 
-archivePath <DirectoryPath><ScemeName>.xcarchive 


# compressing the xcArchive file into IPA file 
xcodebuild \ 
-exportArchive \ 
-exportFormat ipa \ 
-archivePath <DirectoryPath>/<ScemeName>.xcarchive \ 
-exportPath <DirectoryPath>/<ScemeName>.ipa" \ 
     -exportProvisioningProfile "<My Distribution Provisioning Profile>". 

nun in Apfel-Assistenten, wenn ich eine IPA-Datei erstellt, in seiner embedded.mobileprovision kann ich diese Attribute sehen: für eneterprise Verteilung:

<key>ProvisionsAllDevices</key> 
<true/> 

für Ad-hoc-Verteilung:

<key>ProvisionedDevices</key> 
    <array> 
     <string>accacaca0-9800ac898a908908c90aca890c8a90</string> 
     <string>123123123123123123bfd123bdf123fv123bdf12</string> 
. 
. 
. 
    </array> 

In meinem Fall ist, weiß ich nicht, warum Ich habe keine von ihnen und kann sie daher nicht auf jedem Gerät installieren. kann mir jemand sagen, warum ist es? Bitte ?

Antwort

0

Ich löste es. Ich sollte einen modernen Ansatz verwenden, und schreiben Sie es in export.plist:

# 
# creating .xcarchive file from .app file 
function create_archive_file() { 
    xcodebuild \ 
    -workspace ${PROJECT_NAME}.xcworkspace \ 
    -scheme "${scheme_name}" \ 
    archive \ 
    -archivePath ${SRCROOT}/${proj_external_name}/${1}.xcarchive 
} 
# 
# compressing xcArchive file into IPA file 
function create_ipa_from_archive() { 
    xcrun xcodebuild \ 
    -exportArchive \ 
    -archivePath ${SRCROOT}/${proj_external_name}/${scheme_name}.xcarchive \ 
    -exportPath ${SRCROOT}/${proj_external_name}/folder \ 
    -exportOptionsPlist export.plist 
} 

und in export.plist:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>teamID</key> 
    <string>... (my TeamID, get it from one archiving action only once, and check it's details in build editor)</string> 
    <key>method</key> 
    <string>enterprise</string> 
    <key>uploadSymbols</key> 
    <true/> 
</dict> 
</plist> 
+0

Und das funktioniert? Es wird ein Fehler angezeigt: "Fehlerdomäne = IDEDistributionErrorDomain-Code = 14" Keine anwendbaren Geräte gefunden. "UserInfo = {NSLocalizedDescription = Keine anwendbaren Geräte gefunden.}" Mit denselben Befehlen für den Plist-Inhalt. Was sind die singenden Einstellungen in deinem Projekt? Automatisch? – diidu

+0

Es hat für mich funktioniert. Ich denke (es ist wenig spät in meiner Region) vielleicht sollte Ihr Bereitstellungsprofil nicht für bestimmte Geräte sein, es sollte Platzhalter sein. – yonivav

+0

Es ist nicht. Ich verwende ein Unternehmensprofil, das mit jedem Gerät verwendet werden kann. Ich bin nicht der Einzige, der dieses Problem hat (basierend auf Googeln). Es scheint, oder könnte, dass es aus irgendeinem Grund versucht, Ad-hoc-Methode zu verwenden, obwohl Enterprise definiert ist. – diidu