从Xcode Cloud登录AppCenter时遇钥匙串访问错误的解决咨询
解决Xcode Cloud中AppCenter CLI登录的钥匙链无交互错误
问题原因
Xcode Cloud的CI运行环境是无用户交互的无头环境,appcenter login --token命令默认会尝试将凭证写入系统默认钥匙链,这个操作需要用户交互权限,因此触发User interaction is not allowed错误。
解决方案
以下两种方法都可以绕过钥匙链写入的问题:
方法1:在发布命令中直接指定Token
移除登录步骤,直接在distribute release命令末尾添加--token参数传入你的AppCenter令牌:
$brew install npm $npm install -g appcenter-cli # 跳过登录,直接在发布命令中指定token $appcenter distribute release -f $CI_AD_HOC_SIGNED_APP_PATH/MyApp.ipa -g Collaborator --app UserName/App --release-notes-file releaseNote.txt --token [你的AppCenter令牌]
方法2:设置环境变量(推荐)
通过Xcode Cloud工作流的环境变量传递令牌,避免在脚本中硬编码敏感信息:
- 打开Xcode项目的
Product > Archive,进入Xcode Cloud工作流设置 - 在
Environment Variables部分添加变量APPCENTER_ACCESS_TOKEN,值为你的AppCenter令牌 - 修改脚本,移除登录步骤,AppCenter CLI会自动读取环境变量:
$brew install npm $npm install -g appcenter-cli # 无需登录,CLI自动读取环境变量中的令牌 $appcenter distribute release -f $CI_AD_HOC_SIGNED_APP_PATH/MyApp.ipa -g Collaborator --app UserName/App --release-notes-file releaseNote.txt
内容的提问来源于stack exchange,提问作者Hamed
相关产品推荐
相关产品推荐

