Xcodeで開発を進めていくと画像やSDKや新規のライブラリ追加やCocoaPodsなどが原因で
急激にXcodeのビルドが重くなってきます。(小規模開発でさえ、30秒〜1分近くなることも。。。)
おそらく、僕と同じようなiOS開発を初めて間もない方もお困りだと思い、
自分が試した中で特に効果があった2つの施策を残しておこうと思います。
前提条件
- Xcode6系
- OSX 10.9.5
- Swift version 1.1 (swift-600.0.56.1)
並列ビルドの設定をする(IDEの場合)
Xcodeはデフォルトだとシングルタスクでビルドを行います。
そのため、以下の手順で並列ビルドの設定を行います。
手順1・以下のコマンドを実行する
コマンド
defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks <並列数>
コマンド実行例
defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 5
手順2・Xcodeを再起動する
注意
CLIでも実行する方法があるかと思いますが、私がXcode(IDE)をメインで使うため、IDE用のコマンドを実行しています。
CocoaPodsのコンパイルをスキップする
Xcodeはデフォルトの場合、CocoaPodsもデバッグ実行時に毎回Podsのビルドが走る仕様になっています。
Podsは頻繁に変更を行うものではないため、全くビルドを行わないのは考えものですが、通常の開発ではこのビルドをスキップしましょう。
手順1・Xcodeのメニューから、「Product」->「Scheme」->「Edit Scheme」でスキーマの編集画面を開く
手順2・編集ダイアログ上部のSchemeを、デバッグ実行に使うSchemeに変更
手順3・左のリストから「Build」を選択し、右画面の「Find Implicit Dependencies」のチェックを外す
注意
- リリース用のSchemeで行う際はリリース前に必ず時間をとって、「Find Implicit Dependancies」にチェックをつけて、「Clean」して「Build」をしてPodのビルドを行いましょう。
- AWSのSDKを入れてる場合、
clang: error: linker command failed with exit code 1 (use -v to see invocation)
というエラーが表示されてしまう。