【问题标题】:xcode 9.3 session expires every time i close and re-open Xcode每次我关闭并重新打开 Xcode 时,xcode 9.3 会话都会过期
【发布时间】:2018-04-05 15:11:47
【问题描述】:

我看到我的帐户显示“您的会话已过期。请登录。”每次我重新启动 Xcode 时都在 Xcode->Preferences->Accounts 中,即使我在重新启动之间成功登录。另外,我的命令行 xcodebuild 失败了,因为它说用户会话已过期。

我们尝试删除并重新添加用户,但没有解决问题。我们关闭了 2-factor auth 并重新打开它,它也没有解决问题,尽管我们看到它允许登录 w/o 2-factor auth 一段时间,直到我们将其关闭并重新打开,然后它又开始要求输入代码。

有人见过这种行为吗?

【问题讨论】:

  • 我在这里看到与 Xcode 9.3 相同的问题。它发生在我的开发机器和我们的 Xcode Server CI 系统上。
  • 我看到了同样的问题,我在 XCode 9.3 上尝试使用 2FA 和非 2FA 苹果开发者帐户
  • 完全一样 - 全新安装了 High Sierra,每次我重新打开 XCode 时都会显示“会话已过期”。如果我登录,没关系,一旦我关闭 XCode,会话再次过期。

标签: ios xcode macos


【解决方案1】:

Xcode 9.3 现在使用钥匙串访问组将您的 Apple ID 凭据存储在钥匙串中。在启动时,它会尝试将任何现有凭据从以前版本的 Xcode 迁移到访问组中。在某些情况下,迁移似乎失败了。

您可能不需要安装旧版本的 Xcode 来解决这个问题。如果您从 Xcode 中删除您的帐户;退出 Xcode;打开钥匙串访问;查找并删除任何“Xcode-Token”或“Xcode-AlternateDSID”条目;重新启动 Xcode;并重新添加您的帐户,然后您的帐户应该从那时起在 Xcode 9.3 中正常工作。

如果您能够重现此问题,我想请求您在 bugreport.apple.com 上提交一个错误并从您的计算机附加一个系统诊断。

更新

感谢所有提交错误报告的人!我们已经确定了该问题,并对由此造成的不便深表歉意。同时,您可以通过设置用户默认值来避免此问题。在终端中,输入以下命令:

defaults write com.apple.dt.Xcode DVTDeveloperAccountUseKeychainService -bool NO

然后重新启动 Xcode 并在必要时在“帐户”偏好设置面板中重新验证您的 Apple ID 帐户。从那时起,您应该能够退出并重新启动 Xcode,而无需每次都重新进行身份验证。

【讨论】:

  • 不适合我。删除了所有“Xcode-Token”和“Xcode-AlternateDSID”条目。还是一样。
  • 我已运行 sysdiagnose 并将其附加到错误报告中。
  • 我也打开了一个错误报告 - 被要求发送一个 sysdiagnose 然后他们告诉我“看起来你的 Xcode 的签名可能被破坏了。Xcode 包被修改了吗?codesign —verify /path/to/Xcode.app 是什么意思返回?”。我运行命令但没有输出。仅供参考,在全新安装 Mac OS 后从应用商店安装 Xcode。
  • 感谢您的报告!很高兴在这里得到您的直接反馈。在这和失控的 CPU 问题之间,真正需要的是一个新的更好的 Xcode 版本!我相信你们正在努力。
  • defaults write com.apple.dt.Xcode DVTDeveloperAccountUseKeychainService -bool NO 为我解决了这个问题。非常感谢!
【解决方案2】:

经过一长串尝试修复此错误(创建新用户、打开/关闭 2FA、登录/注销 iCloud、恢复钥匙串、从另一台机器复制用户等)但没有成功后,我尝试了远射。

鉴于我只在全新安装最新 Xcode 的全新安装 High Sierra 机器上看到此问题(升级似乎很好),我想知道该问题在以前的版本中是否可见。

由于我在网络上有 Xcode 8.3.3.xip,我解压缩、安装并启动。它有同样的过期会话问题,所以我再次登录(这个过程有点笨拙但有效),然后退出 Xcode 并重新启动。在第二次尝试之后,会话不仅在 8.3.3 版本中持续存在,而且令我惊讶的是,Xcode 版本 9.3 现在也可以正常工作了。

所以我的建议是转到Apple Developer 并登录,然后转到See More Downloads 并获取以前的版本并尝试。我使用的 8.3.3 文件可以从那里下载。我没有删除现有的 9.3 安装,我只是将解压后的 8.3.3 版本重命名为备用名称,并在 /Applications 中并排放置,让我可以轮流重复启动每个版本以进行测试。

【讨论】:

    【解决方案3】:

    Apple 刚刚发布了 Xcode 9.3.1,应该可以解决这个问题。 来自发行说明:

    修复了导致用户必须使用其 Apple ID 登录的问题 反复。 (39573406)

    【讨论】:

      【解决方案4】:

      因为我的帐户是这里的新帐户,所以我不能只添加一个提交来支持@TendrilSix。

      TendrilSix's answer 可以解决这个问题。 如果您遇到同样的问题,只需重新安装 Xcode 8.3.3,然后在 Xcode 8.3.3 中登录您的开发帐户。

      最重要的是,

      如果 Apple 以后不解决此问题。不要卸载 XCODE 8.3.3。

      我们在我们的开发机器上发现,这个问题只发生在曾经同时安装了 Xcode 8.x 和 9.x 的 mac 上。

      卸载 Xcode 8.3.3 后,在 Xcode 9.x 中重新登录的 Dev 帐户会出现“您的会话已过期。请登录。”

      如果 Mac 曾经同时安装了 8.3.3 和 9.3。

      仅登录8.3.3可用,登录行为将在Keychain中添加17项。包括“Xcode-Token”和“Xcode-AlternateDSID”

      登录 9.3 只会在 Keychain 中创建 15 个项目。缺少“Xcode-Token”和“Xcode-AlternateDSID”

      如果从 Xcode 7.x 8.x 9.x 升级 mac 并且从未同时安装两个或多个不同版本的 Xcode。

      登录 9.3 将在 Keychain 中创建 17 个项目,并且 dev 帐户可以正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-29
        • 2014-11-10
        • 1970-01-01
        • 2014-07-21
        • 1970-01-01
        • 2017-01-04
        • 2015-04-01
        • 1970-01-01
        相关资源
        最近更新 更多