github - 如何解决运行更新时 macOS Carthage 挂起的问题?

标签 github carthage passphrase two-step-verification

开始从事一个新项目,我需要为私有(private)和公共(public)项目的混合运行“迦太基更新”,其中一些具有子模块。无论我做什么,迦太基都会挂起,没有任何迹象表明原因。我可以做些什么来确定挂起,然后我该如何解决这些问题?

最佳答案

我为解决我的问题所做的大部分工作都可以在其他地方找到,但没有一个网站拥有这一切。最后,我使用了一种我没有找到但猜测的技术。

我遇到的根本问题是为我的 github 帐户采用推荐的安全保护:两阶段身份验证和 ssh 密码。这两种方法都可以解决,但不幸的是,Cathage 没有提供“详细”选项来让用户确定它正在执行的 git 命令——当它挂起时,这个选项真的可以帮助用户。在我的情况下(可能还有其他大多数情况),根本问题是 Carthage 运行的 git 命令想要提示用户输入某些内容,而 Carthage 已经关闭或重定向了标准输出。

1) Sierra 和 Git 帐户/密码

似乎最近的 Sierra 点版本更改了 git 凭据的缓存方式。现在执行此操作的正确方法是使用钥匙串(keychain)。关于如何指导 git 使用 Keychain 的过程见 here .请注意,此技术仅适用于纯“帐户/密码”身份验证。

在尝试 Carthage 之前,请确保您可以使用 git clone从终端确保一切正常。

2)两步认证

在这种情况下,您需要使用 authentication token .该 token 用于代替 git 密码。同样,确保您可以在尝试 Carthage 之前克隆适当的存储库。

3) ssh 访问密码

如果 git 使用 ssh(可能使用子模块),那么 git 将尝试提示输入密码,并且由于 Carthage 禁止您将被挂起。通过在您的 ~/.ssh/config 中添加一行文件(并在文件的底部执行此操作)

Host *
    UseKeychain yes

git 还将使用 saving and retrieving the passphrase 的钥匙串(keychain).您需要通过终端执行此操作一次才能将其输入钥匙串(keychain)。

4)仍然卡住?

如果上述技术对您没有帮助,当 Carthage 挂起时打开一个新的终端窗口并运行 ps -aef | grep git ;然后你会看到一些 git 命令。希望您会看到 git clone像我一样指挥;将该命令复制到剪贴板。

终止 Carthage 命令,然后将该行粘贴到终端并运行命令(可能通过编辑它以删除无关选项),看看会发生什么。幸运的是,您发现的内容将帮助您解决问题。

关于github - 如何解决运行更新时 macOS Carthage 挂起的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42935038/

相关文章:

javascript - 使用 WebCrypto API 生成 RSA key 对并使用密码保护它

ssl - 重新加载失败 - Ubuntu 15.04 - SSL 密码初始化

SSH:生成公钥后为 "Bad passphrase"

git - 如何在 Jenkins 管道中使用 GitHub 提交消息和提交 ID?

git - 其中第一个 : PHING or Jenkins? 从 GitHub 部署

shell - 如何将命令行中的某些内容通过管道传输到新的 Github 要点?

ios - 选择 Swift 5 时如何修复迦太基构建错误 : "SWIFT_VERSION ' 3. 0' is unsupported"

git - 目录在 github 上显示为灰色文件夹,但未跟踪其内容。为什么?

ios - 如何设置 Jenkins 来构建使用 Carthage 的 React Native iOS 应用程序?

ios - 删除 Carthage build设置维护的框架