iOS / Swift開発環境構築メモ

直近ごりごりJavaでサーバサイドの処理を書いていたんだけど、次はiOSアプリをSwiftで作るってことになったので諸々調査とか準備を進めてる。

iOSは3年くらい前にちょーっとだけObjective-Cで遊んだことがあるくらい。

だいぶ開発環境周りも変わってるだろうからまとめておく。

OSの最新化

Xcode 8, Swift 3 でいくので、macOS Sierraにアップグレードしておく。

ここらへんはわりと緩い判断で、iOS 10のみのサポートで良いって言われたから最新でまとめている感じ。
リリース済のアプリケーションがある場合は結構大変そう。

Homebrewインストール

Mac用のパッケージマネージャ。なにかと便利なので入れておく。

以下を実行してインストールする。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

社内proxyに引っかかる場合は、http_proxyhttps_proxyを設定しておいてやる。

export http_proxy=http://example.com:proxyPort
export https_proxy=http://example.com:proxyPort

昔は気が向いた時にbrew updateしていたけど、最近は brew upgrade とか brew install したときに自動でupdateされるらしい。

Homebrew自体は上で設定した環境変数を見てくれるから、追加のProxy設定とかは必要ない。

Gitのインストール

プロジェクトではGitを利用するので、一応。

$ brew install git

インストールしたGitまでのパスを通しておく。

export PATH="/usr/local/Cellar/git/X.X.X/bin:$PATH"

バージョンを確認し、インストールしたバージョンだったらOK

$ git --version

Rubyのインストール

iOSアプリ開発におけるツール類がわりとRubyに依存しているので、Rubyをインストールしておく。

MacにデフォルトでRubyが入っているけど、global汚染だRubyのバージョンがーとか考えだすと面倒だからrbenvRuby入れることにする。

$ brew install ruby-build
$ brew install rbenv

以下のコマンドでインストール可能なRubyの一覧を確認。

$ rbenv install -l

最新安定版をインストールして、globalに設定する。

$ rbenv install 2.X.X
$ rbenv global 2.X.X
$ ruby -v

後々使うので、bundlerをインストールしておく。

$ gem install bundler

SwiftLintのインストール

Swiftの静的解析用にSwiftLintを入れておく。

$ brew install swiftlint

.swiftlint.yml を設定してプロジェクトルートに配置することで、ルールを変更することができる。
ルールは以下を参照。

以下のようにコマンドでルールを確認することが出来る。

$ swiftlint rules

チームで使うGemのインストール

チームでGemのバージョンは合わせたいので、Gemfileに依存関係を書いてbundlerでインストールする。

Gemfileの書き方は以下を参照。

source "https://rubygems.org"

gem 'rake'
gem 'fastlane', '~> 1.2', '>= 1.2.3'
gem 'cocoapods', '~> 1.1.1'
gem 'xcode-install', '~> 1.3'
gem 'jazzy', :git => 'git@github.com:realm/jazzy.git'

インストール

$ bundle install --path=vendor/bundle

使うときはbudle exec する。 付けないとシステムにインストールした方が使われる。

$ bundle exec pod install

Xcode 8のインストール

手動

OSが古いとコケたりするみたいだけど、OS最新にしてからなら大丈夫っぽい。
互換性のところに、OS X 10.11.5以降と書かれている。

$ xcode-select --install

でインストールする。

xcode-install使う場合

チームでバージョン合わせたいし、後々スクリプト化とか考えたときにもCLIで実行出来たほうが良いので、こっちでいきたいとこ。 まぁ人数少ないし、人の増減もほとんど予定していないので別に良いんだけども。

userIdとかpasswordを求められたら、AppleのIDとpasswordを入れれば良い。

$ bundle exec xcversion update
$ bundle exec xcversion list
$ bundle exec xcversion install 8.0
$ bundle exec xcversion select 8.0

Xcodeプラグインインストール

Xcode8でプラグインを使用するためには各プラグインにUUIDを追加する必要があるとかで、それをやってくれるgemをインストールしておく。

$ gem install update_xcode_plugins
$ update_xcode_plugins

プラグインマネージャのインストール

プラグインマネージャはAlcatraz一択っぽい感じ。昔も使ってたし。

以下を実行することでインストールできる。

$ curl -fsSL https://raw.githubusercontent.com/supermarin/Alcatraz/deploy/Scripts/install.sh | sh

なにはともあれVim

XVim入れる。

Xcode8に入れる場合は手順が違うので注意。

あとはお好みで

便利そうなの入れる

まとめ

とりあえずまとめてみた。 次は自動化できるところは自動化するようにするのと、CIあたりをまとめたい。