タイトルの地点で結構出落ちですが、本日少々厄介な問題にぶち当たってしまったので共有いたします。
発生条件
CocoaPods 0.34.0以上を使用し、GitHub:EnterpriseのgitリポジトリをPodSpecないしSourceリポジトリとして使用している場合に発生します。
発生する問題
CocoaPodsのgitを利用するアクションが全く成功しなくなります。具体的にはpod install, pod updateなどが全く通りません。
問題の原因
公式ブログにあるとおり、0.34.0以上からCocoaPodsは高速にgitリポジトリをcloneするため--depth 1 (shallow clone) オプションを採用するようになっています。しかしながらGitHub:Enterprise側の技術的問題なのか、GitHub:Enterprise内のgitリポジトリに対するhttpないしhttps経由でのshallow cloneが成功しないため永遠にpod installやpod updateが終わりません。
対処方法
- CocoaPodsを当面の間0.33.1のまま運用する。0.33.1を指定してインストールするときにはこちらのQiita記事が参考になります。
- http/httpsではなくssh clone URLを使用する。sshだと問題が起きないとの報告があります。
- ssh cloneがネットワーク上の問題などで使用できない場合、最後の回避策として:tagや:branchを使用しないで:commitを直指定するように社内のPodspecを書き直す。
根本的にはCocoaPodsかGitHub:Enterpriseかいずれかが修正されるのを待つしかありませんが、CocoaPods側としてはあまり積極的に対応する気がないようなので、GitHub:Enterprise側に対応を期待するしかないでしょうか。もちろん全てのGitHub:Enterprise環境下で発生するとは限りませんが、いずれにせよ注意する必要があります。
こちらからは以上です。
0 件のコメント:
コメントを投稿