xcodebuild 停留在协同设计上?如何禁用提示?

Dav*_* T. 6 continuous-integration code-signing xcodebuild ios circleci

我正在尝试设置持续集成,特别是针对circleciiOS。有人在编写详细信息方面做得很好:http : //mazyod.com/blog/2015/03/26/marry-circleci-to-hockey/

然而,我的 xcodebuild 总是卡住,看起来它正在等待协同设计:

/usr/bin/codesign --force --sign...

日志显示它已经运行了一个多小时。我的猜测是……这个命令是在等待输入还是什么?

如果是这样,我如何强制它使用我使用分发证书/私钥创建的钥匙串?

脚本 (add-keys.sh) 如下所示:

#!/bin/sh
security -v create-keychain -p $KEY_PASSWORD ios-build.keychain
security -v import ./utils/build_tools/custom_builds/apple.cer -k ~/Library/Keychains/ios-build.keychain -T /usr/bin/codesign
security -v import ./utils/build_tools/custom_builds/distribution.cer -k ~/Library/Keychains/ios-build.keychain -T /usr/bin/codesign
security -v import ./utils/build_tools/custom_builds/distribution_cert_private_key.p12 -k ~/Library/Keychains/ios-build.keychain -P $KEY_PASSWORD -T /usr/bin/codesign
security -v list-keychain -s ~/Library/Keychains/ios-build.keychain
security -v unlock-keychain -p $KEY_PASSWORD ~/Library/Keychains/ios-build.keychain

mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
cp ./utils/build_tools/custom_builds/profile/* ~/Library/MobileDevice/Provisioning\ Profiles/
ls ~/Library/MobileDevice/Provisioning\ Profiles/
Run Code Online (Sandbox Code Playgroud)

我已经存储$KEY_PASSWORD在 circle ci 的环境变量中并且正在被识别。

这是否会导致弹出提示以允许用户使用钥匙串或其他东西?如果是这样,我是否应该到处 sudo?或者我如何摆脱这个?

我没有导入正确的证书还是什么?他们的名字是错误的还是什么?我使用了我用来正常构建的确切版本。

Man*_*awa 6

security unlock-keychain如果您的构建过程花费了很长时间,它可能在执行后被重新锁定。

默认超时时间为 300 秒。(你可以用 来检查它security show-keychain-info <your keychain path>。)

你可以像这样扩展它:

# Extend the timeout to 600s
security set-keychain-settings -lut 600
Run Code Online (Sandbox Code Playgroud)

仅供参考,它是这样描述的man security

set-keychain-settings [-hlu] [-t timeout] [keychain]
       Set settings for keychain, or the default keychain if none is specified.
       -l              Lock keychain when the system sleeps.
       -u              Lock keychain after timeout interval.
       -t timeout      Specify timeout interval in seconds (omitting this option specifies "no timeout").
Run Code Online (Sandbox Code Playgroud)


Ole*_*nko 5

我在 Circle CI 2.0 和 xcode >= 9.0 上遇到了同样的问题。

看起来像 MacOS Sierra 中的问题(并弹出凭据提示)。

您可以通过使用以下命令作为构建步骤来修复它:

security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $KEYCHAIN_PASSWORD circle.keychain
Run Code Online (Sandbox Code Playgroud)

我在 Circle CI 讨论中发现了已解决的问题:

https://discuss.circleci.com/t/xcode-8-3-build-timing-out/11721/5

祝你好运!


net*_*orm -1

您混淆了 P12_PASSWORD 和 KEYCHAIN_PASSWORD!请查看原始版本:https://github.com/thorikawa/CircleCI-iOS-TestFlight-Sample/blob/master/scripts/add-key.sh

从那里,您可以看到创建钥匙串和解锁钥匙串使用KEYCHAIN_PASSWORD,导入使用P12_PASSWORD!

所以您需要存储两个密码并正确使用它们!