不能在Mavericks下使用我自己的kestore和xcodebuild

我正在尝试迁移一些iOS xcode构建服务器以使用对于xcode 6构建至关重要的Mavericks。 但是,使用以前在山狮中工作的代码调用xcodebuild似乎不再起作用并导致:

Code Sign error: No codesigning identities found: No codesigning identities (ie certificate and private key pairs) that match the provisioning profile specified in your build settings (“provision name”) were found. 

我们的构建命令是相当标准的并且证书已到位,在山狮上执行完全相同的代码“正常工作”(注意我添加了换行符以便于阅读并替换了一些私有数据,例如项目名称和配置):

 /Applications/Xcode5.app/Contents/Developer/usr/bin/xcodebuild -project ProjectName.xcodeproj/ -alltargets -configuration Release -sdk iphoneos7.0 build PROVISIONING_PROFILE=XXXX-XXXXX-XXXX-XXXX-XXXXXXX CODE_SIGN_IDENTITY="iPhone Distribution: name of company (XXXXXXXX)" KEYCHAIN=/Users/administrator/Library/Keychains/temp.keychain OTHER_CODE_SIGN_FLAGS=--keychain /Users/administrator/Library/Keychains/temp.keychain 

我有一个解决方案,签署了“已知工作”证书/配置,并在构建完成后使用codesign工具替换它们,但这会对用户造成一些副作用,我不知道如何解决。 据我所知,上面应该工作,可能只是错过了xcodebuild的一个我不知道的新参数。

小牛队在调用时忽略了keychain set default:

 security default-keychain 

最初的xcodebuild检查逻辑忽略了命令行keychain参数!

以下命令:

 security list-keychains 

不会返回您设置的钥匙串。 解决方法实际上很简单:

 security list-keychains -s /path/to/your/keychain 

然后,初始检查过程将找到正确的证书。