2014-10-22 6 views
7

UPDATE: Die richtige Antwort ist wahrscheinlich diese: Xcode 6.1 error while building IPAPackageApplication gestoppt mit OS X 10,10 (Yosemite) arbeiten heute

Jenkins Mit iOS Projekte aus Repositories seit einigen Jahren zu bauen. Plötzlich tritt ein neuer Fehler auf, der Builds stoppt.

Ich glaube, ich die meisten dieser Einrichtung auf diesem Tutorial Weg basiert zurück:

http://www.raywenderlich.com/22816/beginning-automated-testing-with-xcode-part-22

Dieser Schritt bewirkt, dass der Fehler:

# 4 
echo "*** Post build step 4" 
/usr/bin/xcrun -sdk iphoneos PackageApplication \ 
-o "${IPA_DIR}/${PROJECT}.ipa" \ 
-verbose "${APP}" \ 
-sign "${SIGNING_IDENTITY}" \ 
--embed "${PROVISIONING_PROFILE}" 

Es ist ein bisschen schwierig bei den Protokollen zu suchen, wo der Fehler tritt auf, aber hier ist es:

### Codesigning '/Users/Shared/Jenkins/Home/jobs/myapp/workspace/myapp_adhoc_7.mobileprovision' with 'iPhone Distribution: mycompany Inc.' 
+ /usr/bin/codesign --force --preserve-metadata=identifier,entitlements,resource-rules --sign iPhone Distribution: mycompany Inc. --resource-rules=/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist --entitlements /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/entitlements_plistYdluSmqT /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app 
Program /usr/bin/codesign returned 1 : [Warning: usage of --preserve-metadata with option "resource-rules" (deprecated in Mac OS X >= 10.10)! 
Warning: --resource-rules has been deprecated in Mac OS X >= 10.10! 
/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist: cannot read resources 
] 
error: /usr/bin/codesign --force --preserve-metadata=identifier,entitlements,resource-rules --sign iPhone Distribution: mycompany Inc. --resource-rules=/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist --entitlements /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/entitlements_plistYdluSmqT /var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app failed with error 1. Output: Warning: usage of --preserve-metadata with option "resource-rules" (deprecated in Mac OS X >= 10.10)! 
Warning: --resource-rules has been deprecated in Mac OS X >= 10.10! 
/var/folders/y1/4hrpc2851b7dxn9bhlkhbrnr00007q/T/ipIxOjxE2z/Payload/myapp.app/ResourceRules.plist: cannot read resources 

Ich werde versuchen, das selbst zu beheben und später die Lösung hier hinzuzufügen, aber falls jemand schneller ist als ich, bitte mach weiter.

  • Ich habe keine --Ressourcen-Regeln in irgendwelchen Einstellungen angegeben. Ich denke, dass xcrun diese Einstellung selbst verwendet, obwohl sie veraltet ist.

Antwort

8

Die Antwort gefunden.

Das Problem, das jetzt auftrat, war die "xcrun PackageApplication" etwas etwas Linie. Ich musste den Parameter "-sign profile" entfernen, dann funktionierten die Dinge wieder.

Das sagte ich weiß nicht, warum Signieren vorher notwendig war, und warum es nicht jetzt ist, so kann nicht sagen, ob das später ein Problem verursachen wird.

+0

Das funktionierte auch perfekt für mich. –

+3

Entfernen Sie das Signieren einfach nicht, wenn Sie Ihre App verteilen. Ihre xcrun PackageApplication schlägt aufgrund des veralteten Parameters --resource-rules, der von xcrun verwendet wird, fehl. Apple hat das vor einiger Zeit veraltet gemacht, aber xcrun nicht aktualisiert, um das einfach wegzulassen. Das ist der Grund, warum von hier an die Codesignierung einfach scheitert, wenn die ResourceRules.plist nicht da ist. – Evils

+0

Also was schlägst du vor, hast du eine bessere Antwort? – Jonny

11

Anstatt xcrun zu verwenden, können Sie xcodebuild verwenden, um ein Archiv zu erstellen, und dann xcodebuild erneut ausführen, um die IPA-Datei zu erstellen.

# Create an archive 
xcodebuild -alltargets -configuration "${CONFIGURATION}" -scheme "${SCHEME}" -archivePath "${APP_PATH}/${PROJECT}.xcarchive" archive 

# Create the IPA file from the archive 
xcodebuild -exportProvisioningProfile "${PROVISIONING_PROFILE_NAME}" -exportArchive -exportFormat IPA -archivePath "${APP_PATH}/${PROJECT}.xcarchive" -exportPath "${IPA_DIR}/${PROJECT}.ipa" CODE_SIGN_IDENTITY="${SIGNING_IDENTITY}" 

Beachten Sie, dass ${PROVISIONING_PROFILE_NAME} den Namen des vorläufigen Profil enthalten soll, und nicht den Pfad zur Datei selbst.

Verwandte Themen