繁体   English   中英

代码签名错误:应用程序代码签名验证失败

[英]Code signing Error: Application failed codesign verification

我对iOS开发非常陌生,我已经准备好了一个应用程序并且可以分发,但是每次仅在DEVICE上运行该应用程序时,我似乎都会遇到此错误,iOS模拟器运行良好。 这是完整的错误:

应用程序代码签名验证失败。 签名无效,包含不允许的权利,或者未使用iPhone分发证书签名。 (-19011)

这是整个日志:

Validate "/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app"
    cd /Users/masonsocha/Desktop/Apps/MultiBrowser
    setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    setenv PRODUCT_TYPE com.apple.product-type.application
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/Validation "/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app"

warning: Application failed codesign verification.  The signature was invalid, contains disallowed entitlements, or it was not signed with an iPhone Distribution Certificate. (-19011)
Executable=/Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app/Multibrowser
codesign_wrapper-0.7.10: using Apple CA for profile evaluation
AssertMacros: trust_result == kSecTrustResultUnspecified,  file: codesign_wrapper.c, line: 594
AssertMacros: profile,  file: codesign_wrapper.c, line: 918
codesign_wrapper-0.7.10: Failed to load provision profile from: /Users/masonsocha/Library/Developer/Xcode/DerivedData/Multibrowser-brgeiknbjgrywwehhohafjwxjqnk/Build/Products/App Store-iphoneos/Multibrowser.app/embedded.mobileprovision
 - (null)

我已经尝试过缩短项目名称的长度,但没有帮助,我目前在Xcode 4.3.2上使用OSX Lion。 我整夜都在梳头,请帮忙!

可能是xcode选择了一个开发配置文件来对其进行签名。

确保它使用分发配置文件

按下项目,在“构建设置”->“代码签名”部分中,展开“代码签名身份”->“发行”->,确保“任何iOS SDK”都指向分发配置文件。

我有完全一样的问题。

转到钥匙串访问

  1. 验证您正确设置了公用密钥和专用密钥。 这是一个很好的参考https://developer.apple.com/legacy/library/technotes/tn2250/_index.html

  2. 我之前已经调整了“钥匙串证书首选项”以使Outlook正常运行,但是这几乎搞砸了XCode代码签名。

将这些设置为“最佳尝试”设置(请参见屏幕截图)后,验证工作正常

在此处输入图片说明

您可以解决,它不会将配置文件选择留给xcode。 在项目设置中手动选择正确的发布配置文件,它将通过。

即使检查了所有签名内容,我仍然遇到相同的问题。 我的权利文件中有旧的“可以调试”设置。 将其切换为允许获取任务可解决此问题。 苹果公司提供有关如何调试签名问题的说明

我遇到了这个问题,但是发现上述所有问题都无法解决。 最终,我通过研究有关该主题的Apple技术说明( https://developer.apple.com/legacy/library/technotes/tn2250/_index.html )找到了解决方案。

在我的案例中,具体的问题是资产丢失或被隐藏(我没有发现哪一个),但是在构建过程中的其他任何地方都没有将其标记为问题文件。 我在下面概述了为发现这一点而采取的步骤。

  1. 存档构建,保存以进行临时部署。
  2. 导航到finder中的ipa,重命名为.zip。
  3. 双击以取消存档,打开“有效载荷”文件夹
  4. 打开一个终端,然后输入以下内容:

    codesign --verify -vvvv -R ='anchor applegeneric and certificate 1 [field.1.2.840.113635.100.6.2.1]存在并且(证书leaf [field.1.2.840.113635.100.6.1.2]存在或证书leaf [field。 1.2.840.113635.100.6.1.4]存在)'/Path/to/your/app.app

  5. 无需输入/Path/to/your/app.app,而是将* .app文件从Payload文件夹拖放到终端中,请确保命令末尾与文件名之间有空格,然后按回车键。

我在输出中出现错误,说“密封的资源丢失或无效”,文件名称引起了问题(它以点开头,可能是问题所在)。 当我在XCode项目浏览器中搜索文件名时,我找到了文件,但是当我在Finder中查找时,它不在磁盘上。

解决方法只是从XCode项目浏览器中删除文件,错误消失了。 我绝对会说任何遇到类似问题的人-通过Apple的技术说明进行工作。 他们的措词有点不好,但是解决方案很可能在某个地方。

我遇到了同样的问题,并通过以下方法解决了问题:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM