Xcode - 分享应用程序 - PackageApplication 失败,退出代码为1。

17
我使用Xcode 4.1为iPhone应用创建了一个即时发布版本的构建。目标成功构建并生成了一个归档文件,可以在“组织者”中看到。然后我点击“共享”,选择.ipa和我的发布配置文件。但是,在我点击“下一步”之后,“组织者”崩溃并显示以下错误。错误日志似乎表明错误与“ResourceRules.plist”有关?我使用CorePlot进行图形绘制,这可能与此有关吗?
顺便提一下,我有一个有效的发布证书并导入了发布配置文件。显然,即时发布不再需要Entitlements文件,因此我没有在项目中添加这个文件。我的其他所有应用程序在“共享”阶段都没有崩溃,因此这似乎不是Xcode的问题,只是这个特定应用程序的问题。
非常感谢您的帮助。
Grant.
PackageApplication failed with exit code 1.

Packaging application: '/Users/gabt/Library/Developer/Xcode/Archives/2011-08-20/myApp   20-08-2011 14.11.xcarchive/Products/Applications/myApp.app'

Arguments: embed=/Users/gabt/Library/MobileDevice/Provisioning Profiles/FA16C6A9-603C-46A6-8B98-F367A6B056CD.mobileprovision  verbose=1  output=/var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/670E174E-0BCA-4F18-AB8D-5ACF3D7E569A-8458-000005FCA81C6AE5/app.ipa  sign=iPhone Distribution: Grant Abt  

Environment variables:

HOME = /Users/gabt

LOGNAME = gabt

__CF_USER_TEXT_ENCODING = 0x1F5:0:0

DISPLAY = /tmp/launch-WoNf6c/org.x:0

COMMAND_MODE = unix2003

VERSIONER_PERL_PREFER_32_BIT = no

PATH = /Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin

SHELL = /bin/bash

SSH_AUTH_SOCK = /tmp/launch-hHkBrJ/Listeners

Apple_PubSub_Socket_Render = /tmp/launch-P0dtgN/Render

TMPDIR = /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/

USER = gabt

VERSIONER_PERL_VERSION = 5.12

Output directory: '/var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/670E174E-0BCA-4F18-AB8D-5ACF3D7E569A-8458-000005FCA81C6AE5/app.ipa'

Temporary Directory: '/var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS'  (will NOT be deleted on exit when verbose set)

+ /bin/cp -Rp /Users/gabt/Library/Developer/Xcode/Archives/2011-08-20/myApp 20-08-2011 14.11.xcarchive/Products/Applications/myApp.app /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload

Program /bin/cp returned 0 : []

### Checking original app

+ /usr/bin/codesign --verify -vvvv /Users/gabt/Library/Developer/Xcode/Archives/2011-08-20/myApp 20-08-2011 14.11.xcarchive/Products/Applications/myApp.app

Program /usr/bin/codesign returned 0 : [/Users/gabt/Library/Developer/Xcode/Archives/2011-08-20/myApp 20-08-2011 14.11.xcarchive/Products/Applications/myApp.app: valid on disk

/Users/gabt/Library/Developer/Xcode/Archives/2011-08-20/myApp 20-08-2011 14.11.xcarchive/Products/Applications/myApp.app: satisfies its Designated Requirement

]

Done checking the original app

### Embedding '/Users/gabt/Library/MobileDevice/Provisioning Profiles/FA16C6A9-603C-46A6-8B98-F367A6B056CD.mobileprovision'

+ /bin/rm -rf /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload/myApp.app/embedded.mobileprovision

Program /bin/rm returned 0 : []

+ /bin/cp -rp /Users/gabt/Library/MobileDevice/Provisioning Profiles/FA16C6A9-603C-46A6-8B98-F367A6B056CD.mobileprovision /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload/myApp.app/embedded.mobileprovision

Program /bin/cp returned 0 : []

+ /usr/bin/codesign -d --entitlements /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/entitlements_rawMkZVbU5I /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload/myApp.app

Program /usr/bin/codesign returned 0 : [Executable=/private/var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload/myApp.app/myApp

]

+ /usr/libexec/PlistBuddy -c Set :get-task-allow NO /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/entitlements_plistt2Evi2T_

Program /usr/libexec/PlistBuddy returned 0 : []

+ /usr/bin/plutil -lint /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/entitlements_plistt2Evi2T_

Program /usr/bin/plutil returned 0 : [/var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/entitlements_plistt2Evi2T_: OK

]

### Codesigning '/Users/gabt/Library/MobileDevice/Provisioning Profiles/FA16C6A9-603C-46A6-8B98-F367A6B056CD.mobileprovision' with 'iPhone Distribution: Grant Abt'

+ /usr/bin/codesign --force --preserve-metadata --sign iPhone Distribution: Grant Abt --resource-rules=/var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload/myApp.app/ResourceRules.plist --entitlements /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/entitlements_plistt2Evi2T_ /var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload/myApp.app

Program /usr/bin/codesign returned 1 : [/var/folders/jw/s5ky0r1n34322jt4pw3047m00000gn/T/y30BrfbtxS/Payload/myApp.app/ResourceRules.plist: cannot read resources

]

error: codesign failed with error 1

我从Xcode4.2降级到XC4.1后也遇到了同样的问题。你也降级了吗? - thedanielhanke
4个回答

47
今天我遇到了同样的问题... 在项目的构建设置中缺少“代码签名资源规则路径”。
... 打开您的项目的“构建设置”选项卡。 搜索“代码签名资源规则路径”,对于我来说它是空的, 然后添加 $(SDKROOT)/ResourceRules.plist 感谢Adams Blair描述了这个问题与SDK2.2有关。

在Xcode 6.1上对我没有起作用。 我们正在使用xcodeproj ruby gem来生成Xcode项目,这可能是ResouceRules.plist丢失的另一个原因...我们被困在gem版本0.14.1上,而最新版本是0.19.1。 - i4niac
我改正了。$(SDKROOT)/ResourceRules.plist 实际上适用于 Xcode 6.0.1 和 6.1。在我的情况下,ResourceRules.plist 没有被复制,因为应用程序是为 iphonesimulator SDK 构建的,所以最终没有签名。为了解决这个问题,我必须为 xcodebuild 添加 -sdk iphoneos 标志。 - i4niac
这对我在Xcode 5-6时代并不起作用,但是,在Xcode 6.1中确实需要将其添加到构建设置中。感谢您挽救未来;) - Eric Chen

11

是的,我认为这是xcode6.1的问题(或者是bug?)

你可以:

1.将$(SDKROOT)/ResourceRules.plist添加到"Code Signing Resource Rules Path"

或者

2.使用xcode-select回到6.01版本进行构建

或者

3.在签名参数中去掉"sign=iPhone Distribution: Grant Abt"

以使它正常工作。


也许你可以用一些代码块来更好地格式化你的回答? - simonmorley
遇到了这个问题。第一步(显式添加ResourceRules.plist)解决了它。 - Ivo Jansch

0

请再次检查您的代码签名配置。您的开发者配置文件应该设置为调试模式,而对于发布版本,您必须设置分发配置文件。确保在每个类别下选择任何iOS SDK,并为它们设置相应的配置文件。


0
在测试 Xcode 6.1 beta 版本时遇到了此问题。回退至 Xcode 6.0.1 即可解决。

@BillChan 我曾经和你一样处于同样的情况,就像MiroslavKovac建议的那样,它对我也起作用了。 - klefevre
1
在Xcode 6.1中遇到了同样的问题。编译后没有ResourceRules.plist文件。使用 $(SDKROOT)/ResourceRules.plist 也没有帮助。 - i4niac
我改正了。$(SDKROOT)/ResourceRules.plist 实际上适用于 Xcode 6.0.1 和 6.1。在我的情况下,ResourceRules.plist 没有被复制,因为应用程序是为 iphonesimulator SDK 构建的,所以最终没有签名。为了解决这个问题,我必须为 xcodebuild 添加 -sdk iphoneos 标志。 - i4niac
我在OSX 10.9上尝试了Xcode 6.1,似乎接受的答案对我不起作用。 - BillChan
我尝试过这样做,但是无法使其正常工作。最终我编辑了PackageApplication以删除不推荐使用的开关。我在xcodebuild中添加了-sdk iphoneos,但仍然无法运行。还有其他的想法吗? - Michael Nguyen
我正在使用xcode 6.3,找不到应用建议答案的方法,有没有“代码签名资源规则路径”解决方案的替代方法? - Marcelo Risoli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接