重复清除密钥,重新创建项目后,应用程序在Xcode 4.0.2上的代码验证失败

时间:2011-07-22 05:41:35

标签: iphone ios xcode ipad provisioning

我现在已经有这个问题差不多4个小时了,非常沮丧。我已经完成了3次撤销我的证书和配置文件并从头开始。我还确保我的项目设置为使用DISTRIBUTION配置文件。我撤销并删除了我的开发证书/教授,所以我无法偶然选择它。我的mobileprofile正在被正确复制。我正在使用Xcode 4.0.2。我开始了一个新项目并将我的文件转储到那里,我在那里遇到了同样的问题..

我超级双倍检查获得证书的指示。创建私钥,将文件发送到开发人员配置门户,获得证书,它加载并匹配我的私钥..已删除所有不相关的密钥。已删除在MobileProfile /.../ p>中保存的所有旧配置文件

在这里,真的,我的项目设置正确!!

here, really, my project is set up right!!

这里,真的,我的目标(只有目标!)设置正确!

here, really, my target (only target!) is set up right!

这是我的钥匙串..证书看起来不错 enter image description here

我的超级精心制作的配置文件在Xcode中表现得很好,它当然被认为是好的和签名的

enter image description here

我得到的是:


rocessProductPackaging "/Users/rcl/Library/MobileDevice/Provisioning Profiles/AFFB40FF-FE57-4131-A1D1-0804E0E747FF.mobileprovision" /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app/embedded.mobileprovision
    cd /Users/rcl/Documents/iMan/iMan_On_Xcode402/iMan
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
     "/Users/rcl/Library/MobileDevice/Provisioning Profiles/AFFB40FF-FE57-4131-A1D1-0804E0E747FF.mobileprovision" -o /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app/embedded.mobileprovision

Then..

ProcessProductPackaging /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/Entitlements.plist /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Intermediates/iMan.build/Release-iphoneos/iMan.build/iMan.xcent cd /Users/rcl/Documents/iMan/iMan_On_Xcode402/iMan setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/Entitlements.plist -entitlements -format xml -o /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Intermediates/iMan.build/Release-iphoneos/iMan.build/iMan.xcent

Then...

CodeSign /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app cd /Users/rcl/Documents/iMan/iMan_On_Xcode402/iMan setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" setenv _CODESIGN_ALLOCATE_ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin/codesign -f -s "iPhone Distribution: Robert Lorentz" --resource-rules=/Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app/ResourceRules.plist --entitlements /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Intermediates/iMan.build/Release-iphoneos/iMan.build/iMan.xcent /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app

Then....

Validate /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app cd /Users/rcl/Documents/iMan/iMan_On_Xcode402/iMan setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" setenv PRODUCT_TYPE com.apple.product-type.application /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/Validation /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app

warning: Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011) Executable=/Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app/iMan codesign_wrapper-0.7.10: using Apple CA for profile evaluation AssertMacros: signer, file: codesign_wrapper.c, line: 610 AssertMacros: profile, file: codesign_wrapper.c, line: 914 codesign_wrapper-0.7.10: Failed to load provision profile from: /Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app/embedded.mobileprovision - (null)

修改

一个注意事项是我安装了Xcode 4.2 beta,不确定是否会导致问题?我使用提供的脚本并完全卸载了beta开发人员工具并再次安装了Xcode 4.0.2。

修改

我已经尝试以我自己的名义生成私钥,也尝试使用我公司的名称生成私钥“Common Name”。我最初使用自己的名字注册了Apple开发者程序,但是当我在iTunes Connect上设置自己时,我使用了我的商家名称作为我想要出现的名称。我发布的CERTIFICATE似乎显然使用了我的真实姓名。我试过把私钥上的公用名设置为两个没有运气的东西,但哪个是正确的?

修改:

要清楚,文件/Users/rcl/Library/Developer/Xcode/DerivedData/iMan-hapawfvbfkeskkaembwcgifzypdz/Build/Products/Release-iphoneos/iMan.app/embedded.mobileprovision肯定存在并匹配我的~/Library/MobileDevice/Provisioning Profiles../文件的md5sum(唯一存在的文件,我想要使用的文件。)

修改

创建我的分发配置文件时,我选择的App ID似乎并不重要 - 它们都会给出相同的结果。是否有需要与此App ID匹配的内容?

修改

好的我正在“到某个地方”或向后走。所以我指定的包ID是com.panagiaindustries.iman;苹果发给我SR49T455EV.com.panagiaindustries.iman ...如果我使用com.pana建立我的应用程序...一,它无法在xcode内编码。如果我使用SR49T进行构建...一,它编码,但是当我使用Application Loader时,我得到'Bundle identifier SR49T ...与保留的bundle ID:com.pana ...'不同,作为错误。我应该使用哪个?

修改

添加以下权利文件似乎没有效果:






    get-task-allow
    
    application-identifier
    SR49T455EV.com.panagiaindustries.iman


4 个答案:

答案 0 :(得分:4)

我从Xcode 4.0.2升级到4.2.x beta,然后回到4.0.2。在此之后,Xcode没有工作,所以我运行“官方perl”卸载程序脚本,然后重新安装4.0.2。 Xcode工作..但显然我还在使用一些beta工具。我通过mv / Developer /Developer.old解决了我的问题并安装了“fresh”4.0.2。

答案 1 :(得分:1)

以下步骤需要在Apple Distribution License下构建iPhone应用程序并将其上传到App Store。

  1. 在Mac计算机上从 Keychain Access 创建 CSR 。 访问Keychain Access作为Finder>>应用程序>> Utilities>> Keychain Access。     在创建分发证书时上载此CSR。 Apple许可证只能有一个Apple分发证书。

  2. 下载分发证书。 打开钥匙串访问。 访问Keychain Access作为Finder>>应用程序>> Utilities>> Keychain Access。 安装下载的分发证书。 右键单击分发证书并选择“导出证书”,并在目标库>> Keychains中保存为个人交换证书(.p12)格式。

  3. 对于每个新应用,我们需要在一个Apple分发证书下创建新的配置文件 对于每个新的配置文件,我们需要创建新的应用ID。 因此,我们需要创建一个Adhoc和Appstore配置文件。

  4. Adhoc 配置文件用于在Apple设备中测试应用。 * Appstore * Provisioining Profile用于将应用上传到appstore。 下载相应的配置文件,然后双击配置文件进行安装。 删除所有以前的配置文件,然后保留新安装的配置文件。

  5. 通过选择代码签名实体作为新安装的配置文件构建应用程序。

  6. 6将 ApplicationName.app.zip 文件上传为应用程序加载器中的二进制文件,同时将应用程序上传到appstore。

    参考: https://developer.apple.com

    我相信这对你有所帮助。

答案 2 :(得分:0)

我没有在代码签名权利下面看到任何内容(在配置内容之上)。打开新文件助手,查看资源下的权利文件。然后添加一个密钥对:

<key>get-task-allow</key>
<true/>

理论上它会为你添加这个,但是我记得有些版本的Xcode在实际添加它时很糟糕。还应该有另一个密钥对:

<key>application-identifier</key>
<string>[someNumber].[bundleID]</string>

我不确定该号码的来源,但它可能是iTunes Connect的App ID。

答案 3 :(得分:0)

在原始帖子的构建日志中,您可以看到以文本表示的此特定签名验证失败的根本原因:“..无法从以下方式加载配置文件:(x)”。我遇到过两次这种特殊签名验证失败的情况,两者都成功地通过更新到Lion 10.7.2和最新的Xcode for Lion(目前是Xcode 4.2.1)来解决。

对于在Xcode存档验证或提交期间遇到“应用程序失败的代码签名验证”的其他人,请查看Product&gt;上的构建日志。通过相同的标题归档构建警告的时间,并针对根本原因进行扩展。然后在以下网址"How do I resolve the error: Application failed codesign verification?"

查看Apple的完整错误原因列表