よくある課題の整理
1. ネットワーク:海外ノードでは公式源が遅延・タイムアウトしやすいです。2. コスト:CIで毎回フル取得するとビルド時間・クレジットが増えます。3. 安定性:ミラー選定と断点続伝・キャッシュが重要です。
ミラー源比較と選択の意思決定マトリクス
国内・跨境ノードの速度・安定性の目安です。CIは同リージョンのミラー利用を推奨します。
| 種別 | 対象 | 速度(目安) | 安定性 | 備考 |
|---|---|---|---|---|
| 国内ミラー | Homebrew / npm / CocoaPods | 速い | 高 | npmmirror・中科大・TUNA等。CIは同一リージョン推奨。 |
| 跨境ノード | 公式+プロキシ | 中〜遅 | 中 | all_proxy・SSH中継で改善可能です。 |
| 公式源 | registry.npmjs.org 等 | 遅い(海外から) | 高 | 断点続伝・リトライで補完してください。 |
Homebrew/npm/CocoaPods の設定手順と実行可能コマンド
Step 1:Homebrew ミラー(ターミナルで実行)。
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles" export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/git/homebrew-core.git"
Step 2:npm レジストリ・リトライ・タイムアウト。
npm config set registry https://registry.npmmirror.com npm config set fetch-retries 5 npm config set fetch-timeout 600000
Step 3:CocoaPods の source(Podfile 先頭に記載)。
source 'https://cdn.cocoapods.org/'
Step 4:git で断点続伝的に取得(失敗時は --depth を増やして再実行)。
git fetch --depth=1 --no-tags
Step 5:CI では npm ci と Pods キャッシュの再利用を推奨します。
断点続伝とキャッシュ戦略(手順)
手順です。
- 1
Git:
git fetch --depth=1失敗時は--depth=100で再実行。 - 2
npm:
npm ciで lock に合わせ取得。~/.npmをCIでキャッシュ再利用。 - 3
CocoaPods:Pods をキャッシュしCIでリストア後
pod install。 - 4
Homebrew:
HOMEBREW_CORE_GIT_REMOTEをミラーにしbrew update再実行。
跨境とプロキシ最適化のポイント
跨境では all_proxy や npm config set proxy でプロキシを統一。SSH中継で経路を安定化。CIは同リージョンのミラー利用を推奨します。
よくある失敗の切り分けとFAQ
Q:Homebrew が途中で失敗 → 国内ミラーに切り替え、git fetch の --depth を増やして再実行。
Q:npm がタイムアウト → fetch-retries・fetch-timeout 延長、npmmirror 等。CIでは npm ci とキャッシュ再利用。
Q:pod install が遅い → CDN/git ミラーと Pods キャッシュで短縮。
Mac と Windows の違い(依存取得・ミラー・ターミナル)
Macは依存拉取・ミラー・ターミナルで有利です。
| 項目 | Mac | Windows |
|---|---|---|
| 依存拉取 | Homebrew・CocoaPods・Xcode ネイティブ | WSL等が必要、CocoaPods 非対応 |
| ミラー・キャッシュ | 同一環境で統一しやすい | PowerShell/WSL で分かれやすい |
| ターミナル | zsh/bash で統一 | cmd/PowerShell/WSL の使い分けが必要 |
CIではiOSビルド・ミラー・キャッシュの面でリモートMacが有利です。
- npm:
fetch-retries 5、fetch-timeout 600000。 - Homebrew:
HOMEBREW_BOTTLE_DOMAIN/HOMEBREW_CORE_GIT_REMOTEをミラーに。 - CocoaPods:
sourceと Pods キャッシュ再利用。
まとめ
ミラー選定と断点続伝・キャッシュで、リモートMacの依存取得を速く安定させます。ノード選びとSSH/VNCの使い方はヘルプ(ログイン不要)で。
Mac ノードとアクセス方法を選ぶ
最適ノードでレンタル。購入・ヘルプはログイン不要でご利用いただけます。