如何将钥匙串选项用于altool?

Mik*_*ock 12 xcode itunesconnect application-loader

我正在尝试使用altool中@keychain-p开关选项,以便从钥匙串加载我的iTunes Connect密码:

altool --validate-app -f "${IPA}" -u "redacted" -p "@keychain:?????"
Run Code Online (Sandbox Code Playgroud)

我想弄明白我需要输入什么@keychain:.我尝试的一切(钥匙串文件的路径,钥匙串条目的名称,钥匙串条目中的用户名)都会产生以下错误:

***错误:无法在钥匙串中找到指定的项目.

altool提供有关该-p参数的以下信息:

-p, --password  Password. Required if username specified.  Password is read from stdin if one is not supplied.
                May use @keychain: or @env: prefixes followed by the keychain or environment variable lookup name.
                e.g. -p @env:SECRET which would use the value in the SECRET environment variable.
Run Code Online (Sandbox Code Playgroud)

Nof*_*fls 13

对我有用的方法是使用Application Loader本身登录(检查"保持登录状态"选项)并使用Application Loader的keychain条目.

所以我的命令看起来像这样:

altool --validate-app -f APPLICATION.ipa -u my@apple.id -p @keychain:"Application Loader: my@apple.id"
Run Code Online (Sandbox Code Playgroud)


Dar*_*ust 11

先决条件:

  • 显然,您需要一个 Apple 开发者帐户。那是AC_USERNAME
  • 您需要该帐户的密码。如果您可以启用双因素身份验证,则需要创建特定应用程序的密码(超出本答案的范围)。密码是AC_PASSWORD
  • 钥匙串项将需要一个名称,该名称通过altool@keychain参数引用。我们称之为ITEM_NAME.

在下面的说明,更换AC_USERNAMEAC_PASSWORDITEM_NAME你需要的值。不要逐字输入这些名称。

现在:

  1. 在您的钥匙串中创建一个通用密码。
    • 您可以通过Keychain Access.app File > New Password Item ... 执行此操作。在Keychain Item Name 中,输入您想要的名称ITEM_NAMEAccount Name是您的AC_USERNAMEAC_PASSWORD然后进入Password字段。
    • 或者您可以通过命令行执行此操作: security add-generic-password -a "AC_USERNAME" -w "AC_PASSWORD" -s "ITEM_NAME"
  2. 在 的参数中altool,您现在传递-u AC_USERNAME -p "@keychain:ITEM_NAME"以使其从钥匙串中获取密码。
  3. 第一次运行时altool,您会看到一个安全确认对话框,询问您是否允许altool读取密码。输入您的钥匙串密码,然后单击Always allow

要防止出现安全确认对话框,请单击Always allow或修改相应的钥匙串条目。这像这样工作:

  • 找到的路径altool打开shell和打字xcrun -find altool
  • -T <path>在使用security add-generic-password命令创建密码时使用此路径作为参数,或者:
    • 打开Keychain Access.app
    • 选择密码条目,选择菜单File > Get Info(或按 Cmd+I 或单击?图标)。
    • 在此对话框中,选择Access Control选项卡并按下+按钮。打开文件选择对话框。
    • 打开 Finder 并选择菜单Go > Go to Folder…并将路径粘贴到altool(目录部分,不包括altool自身,例如/Applications/Xcode.app/Contents/Developer/usr/bin/)。
    • 拖动altool到打开的面板Keychain Access并按下Add按钮。


Mik*_*ock 5

正确的用法是输入钥匙串项目的名称(不是钥匙串本身的名称,也不是钥匙串项目的“帐户”字段)。

我的问题实际上与访问控制有关。我必须在 Keychain Access 中编辑钥匙串项目并调整访问控制设置以允许altool查看钥匙串项目。

  • 正常工作一年多后,就停止工作了。问题也出在访问控制上。由于某种原因,钥匙串仅具有 iCloud 版本的凭据,您无法修改权限。我最终使用相同的密码创建了一个新条目,我可以在其中更改访问控制以允许“altool”。 (2认同)