Codeign返回未知错误-1 = ffffffffffffffff

时间:2017-05-25 06:34:38

标签: ios xcode code-signing code-signing-certificate

我尝试对iOS应用程序进行代码签名, 这些是我遵循的步骤

    security create-keychain -p password ${KEYCHAIN}
    security set-keychain-settings -u -t 300 ${KEYCHAIN}
    security list-keychains -d user -s login.keychain ${KEYCHAIN}
    security import "$1" -k ${KEYCHAIN} -A -P "${PASSPHRASE}" -A >/dev/null
    security unlock-keychain -p password ${KEYCHAIN}

    /usr/bin/codesign -f -s $IDENTITY --keychain $KEYCHAIN --entitlements $ENTITLEMENTS Payload/Test.app

这让我回复了Codeign通过ssh返回的未知错误-1 = ffffffffffffffff。

如果我直接在机器上执行代码签名命令,它就会成功签名。

问题仅出在Mac OS Sierra。

8 个答案:

答案 0 :(得分:21)

前一段时间遇到同样的问题,添加

security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k password ${KEYCHAIN}

为我解决了。

答案 1 :(得分:20)

遇到同样的问题,但直接从Xcode存档。 共享解决方案以防万一。

有时,Keychain似乎最终处于腐败状态。也使用MacOS Sierra。

症状:

重新启动Xcode后,Relogin需要访问帐户 Relogin needed to access Accounts after restarting Xcode

在某些操作中使用Keychain Access时提示输入密码 Prompting for password while using Keychain Access for some operations

Keychain Access - 通过Keychain的更改设置访问登录钥匙串时出错... Keychain Access - Error while accessing login keychain via Change Settings for Keychain ...

对我来说有什么修复方法是锁定和解锁(需要密码)所涉及的钥匙串,登录

答案 2 :(得分:6)

我要填写以及我不得不尝试比这里提到的更多的东西:问题是钥匙串不喜欢SSH会话。我必须在我的会话中执行这些来修复它:

security unlock-keychain -p MY_PASS ~/Library/Keychains/login.keychain
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k MY_PASS ~/Library/Keychains/login.keychain
security set-keychain-settings ~/Library/Keychains/login.keychain

我还从XCode中移除了我的帐户(我使用fastlane进行构建),删除了我当前的证书系统/帐户证书,但我怀疑这不应该影响它。

答案 3 :(得分:5)

@madhu我一直在尝试解决同样的问题,并发现与相关证书相关联的密钥的访问控制设置为"在允许访问之前确认"在詹金斯没有工作。我修改了它(通过Keychain Access gui - 获取信息,访问控制)到#34;允许所有应用程序访问此项目"我的构建成功了。

答案 4 :(得分:2)

您可能已经从KeyChain导出了一些像p12这样的文件,当操作系统要求您提供root密码时,如果您拒绝了它,那么Xcode将使用此信息编码签名错误。

如果是这样,你应该重复上述操作,输入密码并点击“允许”,然后编码就可以了。

答案 5 :(得分:2)

这种情况发生在无头构建中,因为无法显示或响应密钥访问提示。解决方案是通过提前授予对密钥的访问权来阻止显示提示。

打开Keychain Access,找到签名证书的密钥(login->证书,然后展开证书以显示其密钥)。右键单击该键并选择:获取信息 - >访问控制,然后选择“允许所有应用程序访问此项”。

答案 6 :(得分:0)

我已经通过网络尝试了几乎所有现有的建议,但都没有帮助......

最后,只重新生成配置文件(适用于AdHoc),重新下载并将其放置到~/Library/MobileDevice/Provisioning Profiles/覆盖现有的配置文件,以挽救我的生命。

顺便说一句,AppStore构建一直都是成功的,所以问题肯定在AdHoc配置文件本身(非常奇怪,因为它看起来很棒)。

答案 7 :(得分:0)

即使我们在〜/ Library / MobileDevices / Provisioning Profiles下的钥匙串和正确的Provisioning Profile中安装了正确的证书。

我们可能还会看到

unknown error -1=ffffffffffffffff

对于此错误,我尝试了以下步骤来解决此问题:

  1. 重新启动计算机,使用“安全解锁钥匙串”解锁钥匙串,再次锁定钥匙串
  2. 删除〜/ Library / Developer / Xcode / DerivedData文件夹。
  3. 运行carthage bootstrap --platform iOS
  4. 打开向下同步工作空间的源代码,运行“ xattr -rc”。然后在xcode中打开.xcodeproject文件。
  5. 打开每个目标的自动签名。需要使用有效的凭据登录。
  6. 单击签名下的配置文件。
  7. 再次解锁钥匙串
  8. 将构建设备更改为“通用设备”,在“产品->清理,然后是产品–>存档”下
  9. 将显示一个允许访问的钥匙串,请单击“始终允许”。
  10. 您应确保存档成功,然后再次触发Jenkins作业。