在我升级 Xcode(至 6.0.1)和 OS X Server(至 3.2.1)后,我不知道如何为配置文件添加证书,以便 Xcode 机器人可以找到它们。
我已通过将 .mobileprovision 文件复制到成功添加了配置文件/Library/Developer/XcodeServer/ProvisioningProfiles
但我在日志中收到的错误现在是:
CodeSign /Library/Developer/XcodeServer/Integrations/Caches/017d83d8975db54bc8279c2fcc0304a6/DerivedData/Build/Products/Server\ build-iphoneos/Test.app
cd /Library/Developer/XcodeServer/Integrations/Caches/017d83d8975db54bc8279c2fcc0304a6/Source/TEST
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Signing Identity: "iPhone Distribution: Greener Pastures ApS"
Provisioning Profile: "Greener Pastures Enterprise TEST"
(03F7CD73-FB25-422E-22A4-A80F12041005)
/usr/bin/codesign --force --sign 746ADC85C62D54BEC9FA874A8D777A38D4DB95CA --keychain /Library/Developer/XcodeServer/Keychains/Portal.keychain --resource-rules=/Library/Developer/XcodeServer/Integrations/Caches/017d83d8975db54bc8279c2fcc0304a6/DerivedData/Build/Products/Server\ build-iphoneos/Fnug.app/ResourceRules.plist --entitlements /Library/Developer/XcodeServer/Integrations/Caches/017d83d8975db54bc8279c2fcc0304a6/DerivedData/Build/Intermediates/Fnug.build/Server\ build-iphoneos/Fnug.build/Fnug.app.xcent /Library/Developer/XcodeServer/Integrations/Caches/017d83d8975db54bc8279c2fcc0304a6/DerivedData/Build/Products/Server\ build-iphoneos/Fnug.app
746ADC85C62D54BEC9FA874A8D777A38D4DB95CA: no identity found
Command /usr/bin/codesign failed with exit code 1
看起来像:“我找不到指定配置文件的证书”。
看起来证书应该在文件中/Library/Developer/XcodeServer/Keychains/Portal.keychain
– 不幸的是我无法编辑。
我尝试使用以下命令将证书添加到文件中
sudo security import "/Users/administrator/Desktop/Greener Pastures Enterprise Distribution TEST Certificate.p12" -k /Library/Developer/XcodeServer/Keychains/Portal.keychain -A -T /usr/bin/codesign -T /usr/bin/xcodebuild -T /usr/bin/pkgbuild
但这提示我输入“钥匙串密码”。我没有(不,这不是管理员帐户的密码或证书密码)。
有谁知道如何解决这一问题?
首先尝试将您的服务器添加到开发人员门户,并删除项目中的显式配置文件等所有限制。
如果这不起作用,归档雷达解释您的配置以及为什么您认为 Apple 应支持它。
如果您真的非常确定破解您的服务器(可能会破坏它)是个好主意,请从具有管理员权限的帐户在您的服务器上打开一个终端,并且:
-
将 Portal 钥匙串复制到桌面:
> sudo cp /Library/Developer/XcodeServer/Keychains/Portal.keychain ~/Desktop/
Password:
您的管理员密码
> sudo chown `whoami`:staff ~/Desktop/Portal.keychain
-
将 Portal 钥匙串密码设置为“123”
> security set-keychain-password -o "`sudo cat /Library/Developer/XcodeServer/SharedSecrets/PortalKeychainSharedSecret`" ~/Desktop/Portal.keychain
New Password:
123
Retype New Password:
123
-
在钥匙串访问中打开钥匙串:
> open -b com.apple.keychainaccess ~/Desktop/Portal.keychain
使用密码解锁“Portal”钥匙串“123”
将所需的密钥从您的个人“登录”钥匙串复制到“门户”钥匙串。
确保私钥具有正确的访问权限(在“访问控制”选项卡中),应列出“xcsbuildd”、“xcscontrol”、“xcodebuild”和“codesign”
锁定“门户”钥匙串,退出“钥匙串访问”
-
重置门户钥匙串密码:
> security set-keychain-password -p "`sudo cat /Library/Developer/XcodeServer/SharedSecrets/PortalKeychainSharedSecret`" ~/Desktop/Portal.keychain
Password:
您的管理员密码(可选步骤)
Old Password:
123
它可能会也可能不会再次要求您输入管理员密码,请注意提示。
-
将 Portal 钥匙串复制回来
> sudo chown _xcsbuildd:_xcs ~/Desktop/Portal.keychain
> sudo cp ~/Desktop/Portal.keychain /Library/Developer/XcodeServer/Keychains/
由于系统会缓存打开的钥匙串,因此请重新启动计算机。
不要只是盲目地将密钥复制到门户钥匙串中。首先尝试其他解决方案,并在堆栈溢出上询问是否需要帮助。仅在之后执行此程序提交雷达,不仅仅是因为“事情不起作用”。当你不确定自己在这里做什么时,你就会毁掉你的系统。
替代程序(对于高级):
将以下脚本复制为importP12.sh
:
#!/bin/sh
importP12()
{
P12FILE="$1"
XCS="/Library/Developer/XcodeServer";
XCBIN="$XCS/CurrentXcodeSymlink/Contents/Developer/usr/bin";
PORTALKC="$XCS/Keychains/Portal.keychain"
PORTALKCS="$XCS/SharedSecrets/PortalKeychainSharedSecret"
sudo security -i <<IMPORT
unlock-keychain -p "`sudo cat $PORTALKCS`" $PORTALKC
import "$P12FILE" -k $PORTALKC -T "$XCBIN/xcsbuildd" -T "$XCBIN/xcscontrol" -T "$XCBIN/xcodebuild" -T /usr/bin/codesign
lock-keychain $PORTALKC
IMPORT
}
echo "Please enter your account password:"
for p12 in "$@"
do
importP12 "$p12"
done
And do
> importP12.sh
你的 P12 文件.p12
Password:
您的管理员密码
应该会出现一个对话框,要求您输入 P12 导入密码,然后您就完成设置了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)