错误Itms-90339:此捆绑包无效.info.plist在应用程序包中包含无效密钥"CFBundleResourceSpecification"

Anu*_*hra 43 xcode ios

我正在尝试在iTunes for iOS 9上传我的应用程序.我使用Xcode 7 beta 6来构建我的IPA,但iTunes无法通过以下错误消息上传我的IPA.在此输入图像描述

Kau*_*ani 94

"构建设置">"代码签名">"代码签名资源规则路径"下的项目设置 - 删除"代码签名资源规则路径"的值.这对我来说是个问题

  • 我有同样的问题.我们有一些构建自动化软件,它在Project.xcconfig文件中设置此路径.评论说,所有建立和提交的一切都很好.`// CODE_SIGN_RESOURCE_RULES_PATH = $(SDKROOT)/ ResourceRules.plist` (3认同)
  • @ mattv123如何在没有`CODE_SIGN_RESOURCE_RULES_PATH`的情况下设置自动化软件?我正在使用Jenkins,当我删除`CODE_SIGN_RESOURCE_RULES_PATH`时,我遇到了代码签名错误. (3认同)
  • 与Cordova有同样的错误.在文件platforms/ios/cordova/build.xcconfig中注释掉CODE_SIGN_RESOURCE_RULES_PATH.修好了 (2认同)

Ris*_*oel 57

我和董慧慧一样.我也在使用Jenkins.如果我删除CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist我无法建立.如果我添加它,我可以构建但不能提交给Apple.

更新 - >我现在可以使用Jenkins构建并上传到苹果.
我做的是:

  1. 去掉 CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
  2. 找到该/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", $opt{sign},
                      "--resource-rules=$destApp/ResourceRules.plist");
    
    Run Code Online (Sandbox Code Playgroud)

    将其更改为:

    my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
                      "--sign", $opt{sign});
    
    Run Code Online (Sandbox Code Playgroud)

  • 强烈建议不要修改Xcode内部文件.您需要能够验证Xcode的完整性并保持某种理智:(例如,参见xcodeghost).相反,不要依赖jenkins插件的包装设施,并手动打包你的.ipa.(见我的回答)| K < (5认同)
  • 这是一个黑客.不推荐使用`PackageApplication`,它可能只是一个时间问题,直到它因不同的原因停止工作.我也同意kent修改内部XCode文件.正如Apple自己所说,真正的解决方案是使用`xcodebuild -exportArchive -exportPlistOptions`:/sf/ask/2293430191/ -command线/ 32845990#32845990 (4认同)
  • 这对我帮助很大.我终于让我的Jenkins buildcript再次运行. (2认同)

ken*_*ent 5

问题在于Jenkins的Xcode集成插件.具体来说,构建详细信息窗格中有一个复选框,名为:"打包应用程序并构建.ipa?"

此功能将使用可选的'--embed'和'--sign'标志设置调用'xcrun PackageApplication'.

在大多数情况下,您已经运行了协同设计,并且在大多数情况下,配置配置文件的嵌入是多余的.不幸的是,插件的作者没有考虑到这一点,并且这两个可选参数不能通过jenkins插件的GUI进行配置.

解决方案:

不要选择这个选项!

此选项有三个参数:

  • '.ipa filename pattern':例如:MyApplication

  • '输出目录':例如:OUTPUT

  • 'manifest plist URL'(我没用过这个......)

相反,通过使用GUI中"pack"选项中的参数在构建后添加"执行shell"来手动打包.ipa文件:

/bin/mkdir $(PWD)/build/OUTPUT    
/usr/bin/xcrun -sdk iphoneos PackageApplication -v $(PWD)/build/MyApplication.app -o $(PWD)/build/OUTPUT/MyApplication.ipa
Run Code Online (Sandbox Code Playgroud)