我在XCode中创建了一个简单的基于导航的iPhone应用程序。该应用程序从XCode下构建并正常运行,但我无法从命令行构建它。
从终端我执行:
xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build
但我得到了这个错误:
=== BUILD NATIVE TARGET George OF PROJECT George WITH CONFIGURATION Debug ===
Check dependencies
[BEROR]Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
我尝试处理它的方式有问题吗?
答案 0 :(得分:27)
除了解锁钥匙串之外,您还可以指定codesign身份(或在目标中设置)。开发证书的形式为“iPhone Developer:Company Inc”,分发证书如“iPhone Distribution:Company Inc”。
xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY='iPhone Developer: Company Inc'
答案 1 :(得分:4)
很可能你的钥匙串被锁定了。尝试在执行脚本之前将其解锁,您可以从命令行(在构建之前)执行此操作:
security unlock -p YourPasswordToKeychain ~/Library/Keychains/login.keychain
注意,我正在使用“登录”钥匙串,在您的情况下可能会有所不同
此外,如果这没有帮助,请尝试删除所有其他参数,并像这样留下smth:
xcodebuild -configuration Debug
并事先清理xcodebuild -configuration Debug clean
答案 2 :(得分:4)
您可以从命令行构建一个针对模拟器的构建,而不会签署问题。
这解决了我的签名问题:
xcodebuild -sdk iphonesimulator
来源: xcodebuild Code Sign error: No matching codesigning identity found:
如果命令行构建仅用于检查持续集成设置中的源代码,那么这一点特别有用。
答案 3 :(得分:3)
我正在使用深圳,它也显示了这个错误。
事实证明,当我插入iPad但它不在配置文件中时会发生这种情况。将--verbose
传递给深圳。它显示:
Check dependencies
Code Sign error: No matching provisioning profiles found: None of the valid provisioning profiles include the devices:
XXXX’s iPad
CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 8.3'
拔下设备,一切正常......
答案 4 :(得分:1)
根据脚本的用途,只需关闭脚本中的代码签名即可,只需设置CODE_SIGN_IDENTITY =''
即可xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY=''
显然,如果你试图从脚本中进行最终构建,那就不好了,但是如果你只是想为持续集成做一个测试构建(例如来自Jenkins,确保没有人拥有),这可能会很好什么都坏了。
答案 5 :(得分:1)
我的归档错误与原始帖子类似但不完全相同:
** ARCHIVE FAILED **
The following build commands failed:
Check dependencies
(1 failure)
原来这是一个缺少的应用程序服务(在我的例子中,是HealthKit服务/权利),我在我的开发应用程序ID中启用了该服务,但不是我的生产应用程序ID。
您在Apple会员中心启用服务:https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action
答案 6 :(得分:0)
这可以通过更改" iOS Distribution"来修复XCode 8.0。到" iOS开发"在XCode中。它似乎不应该起作用,但它出于某种原因。