无法从命令行构建XCode项目,但可以从XCode构建

时间:2011-10-03 12:45:12

标签: iphone objective-c xcode xcodebuild

我在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)

我尝试处理它的方式有问题吗?

7 个答案:

答案 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中。它似乎不应该起作用,但它出于某种原因。