错误 Itms-90339:此捆绑包无效。 info.plist 在应用程序包中包含无效键“CFBundleResourceSpecification”
Posted
技术标签:
【中文标题】错误 Itms-90339:此捆绑包无效。 info.plist 在应用程序包中包含无效键“CFBundleResourceSpecification”【英文标题】:Error Itms-90339: This bundle is invalid . The info.plist contains an invalid key 'CFBundleResourceSpecification’ in app bundle 【发布时间】:2015-09-10 14:15:09 【问题描述】:我正在尝试在适用于 ios 9 的 iTunes 上上传我的应用程序。我使用 Xcode 7 beta 6 来构建我的 IPA,但 iTunes 未能通过以下错误消息上传我的 IPA .
【问题讨论】:
【参考方案1】:Build Settings > Code Signing > Code Signing Resource Rules Path 下的项目设置 - 删除 Code Signing Resource Rules Path 的值。对我来说已解决的问题
【讨论】:
我看起来这行得通。但记得清理构建文件夹。 我遇到了同样的问题。我们有一些构建自动化软件在 Project.xcconfig 文件中设置此路径。评论了这一点,一切都建立和提交就好了。//CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
与 Cordova 有同样的错误。在文件platforms/ios/cordova/build.xcconfig 中注释掉CODE_SIGN_RESOURCE_RULES_PATH。解决了它
@mattv123 在没有CODE_SIGN_RESOURCE_RULES_PATH
的情况下,您是如何设法构建自动化软件的?我正在使用 Jenkins,当我删除 CODE_SIGN_RESOURCE_RULES_PATH
时出现代码签名错误。
删除值就ok了。但是itunes connece显示构建无效【参考方案2】:
我和李东辉是同一条船。我也在使用詹金斯。如果我删除 CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
我将无法构建。如果我添加它,我可以构建但不能提交给 Apple。
更新 -> 我现在可以使用 Jenkins 构建并上传到苹果。 我所做的是:
-
删除
CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
找到/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication
脚本并更新它。
在脚本中找到包含以下代码的行
my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
"--sign", $optsign,
"--resource-rules=$destApp/ResourceRules.plist");
改成:
my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
"--sign", $optsign);
【讨论】:
这对我帮助很大。我终于让我的 Jenkins buildscript 再次工作了。 这对我也有帮助,我觉得它应该是公认的答案,因为它更完整。 刚刚更新到 El Capitan (10.11 / XCode 7.0.1);正如预期的那样,需要重新应用相同的修复程序。 强烈建议不要修改 Xcode 内部文件。您需要能够验证 Xcode 的完整性并保持某种理智:(例如,请参阅 xcodeghost)。相反,不要依赖 jenkins 插件的打包工具,而是手动打包你的 .ipa。 (见我的回答)|K 这是一个黑客。PackageApplication
已被弃用,由于其他原因停止工作可能只是时间问题。我也同意 kent 关于修改内部 XCode 文件的观点。正如Apple自己所说,真正的解决方案是使用xcodebuild -exportArchive -exportPlistOptions
:***.com/questions/32763288/…【参考方案3】:
问题在于 Jenkins 的 Xcode 集成插件。 具体来说,构建详细信息窗格中有一个复选框,名为: “打包应用程序并构建.ipa?”
此功能将调用 设置了可选的“--embed”和“--sign”标志的“xcrun PackageApplication”。
在大多数情况下,您已经运行了 codesign,而且在大多数情况下,预置配置文件的嵌入是多余的。不幸的是插件的作者没有考虑到这一点,并且这两个可选参数无法通过jenkins插件的GUI进行配置。
解决办法:
请勿选择此选项!
这个选项有三个参数:
'.ipa 文件名模式':例如:MyApplication
'输出目录':例如:OUTPUT
'manifest plist URL'(我没用过这个...)
改为手动打包您的 .ipa 文件,方法是在构建后使用 GUI 的“pack”选项中的参数添加“execute shell”:
/bin/mkdir $(PWD)/build/OUTPUT
/usr/bin/xcrun -sdk iphoneos PackageApplication -v $(PWD)/build/MyApplication.app -o $(PWD)/build/OUTPUT/MyApplication.ipa
【讨论】:
临时分发需要嵌入配置文件,不是吗? @JDL:是的。但在构建过程的这个阶段,配置文件已经嵌入。【参考方案4】:如果您的语音 CFBundleResourceSpecification
为空,请检查您的 info.plist,如果您不需要它,请将其删除。
如果您需要它,那么您需要检查您在 构建设置 中 Code Signing Resource Rules Path
下使用的值。
【讨论】:
面临同样的问题,我的 info.plist 中没有CFBundleResourceSpecification
?
您的代码签名资源规则路径中有内容吗?检查构建设置下,如果它是空的,只需将其删除。
我在 Build Settings 中添加了 Code Signing Resource Rules Path
并从 iTunesConnect 得到了相同的 CFBundleResourceSpecification
错误。 :(
@KaushalPanjwani 删除值就可以了。但是iTunes连接显示构建无效。如何解决问题。【参考方案5】:
当我使用 Jenkins 自动构建时,删除 CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist 会导致构建失败。但是通过 xcode 构建,它可以工作。
【讨论】:
【参考方案6】:使用开发者工具测试版构建的应用程序无法提交到 iTunes Connect。
用 GM 或发布版本的工具试试吧。
【讨论】:
以上是关于错误 Itms-90339:此捆绑包无效。 info.plist 在应用程序包中包含无效键“CFBundleResourceSpecification”的主要内容,如果未能解决你的问题,请参考以下文章
错误 ITMS-90092:“此捆绑包无效...” [重复]
错误 ITMS-90060:“此捆绑包无效。键 CFBundleShortVersionString 的值
错误 ITMS-9000:“此捆绑包无效。Apple 目前不接受构建的应用程序
上传到 iOS App Store 时出错:错误 ITMS-9000 “此捆绑包无效”