我是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没有帮助。我整晚都在拔头发,请帮帮忙!
答案 0 :(得分:19)
可能是xcode选择了一个开发配置文件来用它来签名代码。
确保它使用分发配置文件
按下项目,在Build Settings中 - >代码签名部分扩展代码签名身份 - >发布 - >确保Any iOS SDK指的是分发配置文件。
答案 1 :(得分:9)
我有完全相同的问题..
转到Keychain Access
确认您已正确设置公钥和私钥。这是一个很好的参考https://developer.apple.com/legacy/library/technotes/tn2250/_index.html
我之前调整了我的钥匙串证书首选项以使Outlook工作,但这几乎搞砸了XCode代码签名..
我将这些设置为"最佳尝试"设置(见截图)验证工作正常
答案 2 :(得分:3)
你可以解决它没有将配置文件选择留给xcode。在项目设置中手动选择正确的版本配置文件,它将通过。
答案 3 :(得分:2)
即使检查了所有签名内容,我也遇到了同样的问题。我有旧的"可以调试"在我的权利文件中设置。将其切换为get-task-allowed可以解决问题。 Apple有instructions on how to debug signing issues。
答案 4 :(得分:1)
我遇到了这个问题,但发现上述问题都没有解决。最后,我通过Apple的技术说明(https://developer.apple.com/legacy/library/technotes/tn2250/_index.html)找到了解决方案。
我的案例中的具体问题是资产丢失或被隐藏(我没有找到哪个),但是在构建过程中的任何其他地方都没有将其标记为问题文件。我已经概述了我在下面发现的步骤。
打开终端,输入以下内容:
代码签名 - 验证-vvvv -R ='锚苹果通用和证书1 [field.1.2.840.113635.100.6.2.1]存在且(证书叶[field.1.2.840.113635.100.6.1.2]存在或证书叶[field.1.2.840.113635.100.6.1.4]存在)'/ path / to / your /app.app
不是输入/Path/to/your/app.app,而是将* .app文件从Payload文件夹拖放到终端中,确保命令末尾和文件名之间有空格,并点击返回。
我在输出中输入错误,说'密封资源丢失或无效',文件名称导致问题(以点开头,这可能是问题)。当我在XCode项目浏览器中搜索文件名时,我找到了该文件,但当我查看Finder时,它不在磁盘上。
修复只是从XCode项目浏览器中删除文件,错误就消失了。我肯定会对遇到类似问题的人说 - 通过Apple的技术说明。他们的措辞有点严厉,但解决方案很可能就在那里。
答案 5 :(得分:0)
我遇到了同样的问题并通过以下方式解决了这个问题: