Codesign 返回未知错误 -1=ffffffffffffffff

Codesign returned unknown error -1=ffffffffffffffff

我尝试对 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 "" -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

这返回给我 Codesign 通过 ssh 返回未知错误 -1=ffffffffffffffff。

直接在本机执行code sign命令,即成功签名

问题仅存在于 Mac OS Sierra。

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

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

帮我解决了。

我尝试了网上几乎所有现有的建议,none 其中有帮助...

最后只重新生成了 Provisioning Profile(对于 AdHoc),重新下载并放置到 ~/Library/MobileDevice/Provisioning Profiles/ 覆盖现有的配置文件救了我一命。

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

@madhu 我一直在尝试解决同样的问题,发现与相关证书关联的密钥的访问控制设置为 "Confirm before allowing access",这在 Jenkins 中不起作用。我将其修改(通过 Keychain Access gui - 获取信息、访问控制)为 "Allow all applications to access this item",我的构建成功了。

直接从 Xcode 存档时遇到了同样的问题。 分享解决方案以防有帮助。

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

症状:

重新启动后需要重新登录才能访问帐户 Xcode

使用钥匙串访问进行某些操作时提示输入密码

钥匙串访问 - 通过更改钥匙串设置访问登录钥匙串时出错...

对我来说修复它的是锁定和解锁(需要密码)所涉及的钥匙串,login 在我的例子中。

您可能已经从 KeyChain 导出了一些文件,例如 p12,当 OS 询问您的 root 密码时,您拒绝了,然后 Xcode 将使用此信息进行代码签名错误。

如果是这样,您应该重复上面的操作,输入您的密码并点击允许,然后代码签名就可以了。

除了这里提到的,我还要尝试更多的事情:问题是钥匙串不喜欢 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

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

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

打开钥匙串访问,找到您的签名证书的密钥(登录-> 证书,然后展开证书以显示其密钥)。右键单击密钥和 select:获取信息 -> 访问控制,然后 select "Allow all applications to access this item"。

即使我们在钥匙串中安装了正确的证书,并在 ~/Library/MobileDevices/Provisioning 配置文件下安装了正确的配置文件。

我们可能还会看到

unknown error -1=ffffffffffffffff

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

  1. 重启机器,使用"securify unlock-keychain"解锁钥匙串,再次锁定钥匙串
  2. 删除 ~/Library/Developer/Xcode/DerivedData 文件夹。
  3. 运行迦太基bootstrap--平台iOS
  4. 打开同步工作区的源代码,运行 "xattr -rc ."然后打开xcode中的.xcode工程文件。
  5. 为每个目标打开自动签名。需要使用有效凭据登录。
  6. 单击签名下的配置文件。
  7. 再次解锁钥匙串
  8. 将构建设备更改为通用设备,在 Product --> Clean 下,然后 Product –> Archive
  9. 会出现钥匙串访问允许,点击"Always Allow"。
  10. 您应该确保存档成功,然后再次触发 Jenkins 作业。