Travis CIでCarthageを実行したときに、次のようなエラーが出てprebuilt frameworksがダウンロードされない場合の対処法です。
*** Skipped downloading RxSwift.framework binary due to the error:
"Maximum number of login attempts exceeded. Please try again later."
どうやらこのエラーは同一IPのTravis CIコンテナがみんなのプロジェクトで共用されているために、GitHubのrate limitに引っかかったことが原因で発生しているらしいです。
以下のようにGitHub APIのアクセストークンを指定してあげることで、回避できます。
(事前準備)travisコマンドのインストール
travisコマンドのgemをインストールしておきます。
sudo gem install travis --no-document
アクセストークンの作成
https://github.com/settings/tokens へアクセスして、Travis CI用のアクセストークンを作成します。
(1) Generate new token ボタンを押します。
(2) Token description に「Travis」と入力して(※別になんでもいいんだけど、あとで自分がわかりやすい名前で)作成します。下にあるスコープのチェックボックスはすべて空欄で構いません。
.travis.ymlへのアクセストークンの指定
travisコマンドを使って、先程コピーしたアクセストークンを(暗号化して) GITHUB_ACCESS_TOKEN環境変数にセットするように、.travis.ymlファイルを書き換えます。
(<YOUR ACCESS TOKEN>
の部分にコピーしたトークンを指定してください)
travis encrypt GITHUB_ACCESS_TOKEN=<YOUR ACCESS TOKEN> --add
.travis.ymlに次のような記述が追加されるはずです。
env:
global:
secure: fDs1oSS...(以下略)
※ もし、travis encryptに失敗して、 uninitialized constant GH::Error
というエラーが出た場合は(私がそうだったのですが)、次のようにbackportsを最新にすることで回避できるようです。(参考)
sudo gem update backports
参考にしたサイト
https://github.com/travis-ci/travis-ci/issues/4195
https://github.com/Carthage/Carthage/pull/605
https://gist.github.com/topheman/25241e48a1b4f91ec6d4
https://github.com/travis-ci/travis.rb