0

我正在使用 Visual Studio 2017 (15.6.5) 并有一个基于 .NET 标准的 xamarin 解决方案,其中包含一个 android 和 iOS 项目。

我正在使用 Visual Studio Online CI 来(尝试)构建 iOS 应用程序。在开发中一切正常。我很满意我正确设置了证书、应用程序、设备和配置文件。

我无法在线使用 Visual Studio 进行构建。当我们得到将 p12 证书导入临时钥匙串的部分时,我得到了错误

安全性:SecKeychainItemImport:导入中的未知格式。

我正在使用 VSTS 提供的预览版 mac 代理。我使用 MSBuild 作为构建代理选项。我将 p12 证书存储为 blob 并使用 curl 下载。

运行命令时

/usr/bin/security create-keychain -p _xamariniostask_TmpKeychain_Pwd#1 /Users/vsts/agent/2.131.0/work/1/s/_xamariniostasktmp.keychain
/usr/bin/security set-keychain-settings -lut 7200 /Users/vsts/agent/2.131.0/work/1/s/_xamariniostasktmp.keychain
/usr/bin/security unlock-keychain -p _xamariniostask_TmpKeychain_Pwd#1 /Users/vsts/agent/2.131.0/work/1/s/_xamariniostasktmp.keychain
/usr/bin/security import /Users/vsts/agent/2.131.0/work/1/s/FILENAME.p12 -P PASSWORD -A -t cert -f pkcs12 -k /Users/vsts/agent/2.131.0/work/1/s/_xamariniostasktmp.keychain

在我的 mac 构建机器上,一切都很好。我难住了。

我猜

  1. 我没有正确导出证书,但它可以在构建机器上运行
  2. 通过互联网从 blob 存储或从 mac 到 windows 上传和下载(以便将其放入 blob 存储)会导致一些损坏?
  3. 与不在同一台机器上有关

任何人都可以帮忙吗?我不确定我失败的技术是什么?

我通过在“我的证书”中导出分发证书来使用 Mac 上的钥匙串访问创建 P12 证书,并尝试了在苹果开发者门户上创建的开发和分发证书。我已经导出了“父”证书和私钥。结果都是一样的。

4

1 回答 1

0

忽略这个。经典的自橡胶在这里躲避。我发现我在 mac 代理(我无法访问)上使用的 curl 命令默默地失败了。这是下载我需要的文件。我使用了 azure blob 存储对象而不是“标准对象”。因此没有 p12 证书或配置文件。curl 命令中应该显示错误,否则“找不到文件”会更有用。

呸呸呸!

于 2018-04-10T09:47:39.960 回答