You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins/SSH调用xcodebuild报‘会话已过期,请登录’错误求助

解决xcodebuild通过Jenkins/SSH执行时的DVTPortalServiceErrorDomain Code=1100问题

以下是开发者们验证过的可行解决方案:

  • 匹配钥匙串上下文:SSH或Jenkins运行的用户可能和本地登录用户不一致,务必确保解锁的是运行构建任务的用户对应的钥匙串。另外,新版本macOS默认钥匙串是login.keychain-db,而非旧版的login.keychain,尝试替换解锁命令中的路径:

    /usr/bin/security unlock-keychain -p 'mypwd' ~/Library/Keychains/login.keychain-db
    /usr/bin/security set-keychain-settings -t 9600 ~/Library/Keychains/login.keychain-db
    
  • 用应用专用密码绕开钥匙串会话:直接在xcodebuild命令中指定Apple ID和应用专用密码(需提前在Apple ID官网生成),彻底避免钥匙串会话过期问题:

    xcodebuild -project YourProject.xcodeproj -scheme YourScheme archive \
      -username your_apple_id -password your_app_specific_password
    
  • 刷新Xcode开发者会话:在SSH环境中执行以下命令重置Xcode的认证缓存,之后远程登录机器打开Xcode重新登录开发者账号一次:

    defaults delete com.apple.dt.Xcode
    xcode-select -r
    
  • 验证钥匙串权限:执行security show-keychain-info ~/Library/Keychains/login.keychain-db查看钥匙串设置,确认超时时间正确,且没有额外的强制锁定规则。

这个问题本质是无GUI环境下(SSH/Jenkins),Xcode无法访问GUI会话中的Apple ID认证缓存,或钥匙串的权限上下文不匹配。其中用应用专用密码直接传入命令行的方案稳定性最高,大部分开发者用这个解决了问题。

内容的提问来源于stack exchange,提问作者Gary Hooper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 22:42:18