CarthageでR.swiftを使ってみた

R.swiftをマニュアルでインストールして利用しているので
[manually](https://github.com/mac-cain13/R.swift#manually)のやり方と一緒です。

# CocoaPodsではなくCarthageを使う理由
- ビルド時間短縮
- プロジェクトをシンプルに保ちたい

# [Carthage](https://github.com/Carthage/Carthage)のインストール
Carthageはインストール済みであることを前提にしています。
インストールしていない方はドキュメントまたは下記を参考にしてください。
[Carthageを使ってビルド時間を短縮しよう](http://qiita.com/yutat93/items/97fe9bc2bf2e97da7ec1)

# [R.swift.library](https://github.com/mac-cain13/R.swift.Library)をインストール

```Cartfile:Cartfile
github "mac-cain13/R.swift.Library"
```

今回はiOSを対象としていたのでiOSのみインストールします。

```
carthage update --platform iOS
```

# frameworkを追加
プロジェクト > Carthage > Build > iOS に
Rswift.frameworkが生成されていますので
Target > General > Linked Frameworks and Libraries から追加します。

![スクリーンショット 2016-08-13 15.48.51.png](https://qiita-image-store.s3.amazonaws.com/0/87163/88d28620-4c32-1354-964a-a93d305fb47f.png "スクリーンショット 2016-08-13 15.48.51.png")

# Carthage用のscriptを追加
Target > Build Phases > + からscriptを追加します。
scriptを記述し、

```
/usr/local/bin/carthage copy-frameworks
```

Input FilesにRswift.frameworkを追加します。

```
$(SRCROOT)/Carthage/Build/iOS/Rswift.framework
```

![スクリーンショット 2016-08-13 15.52.54.png](https://qiita-image-store.s3.amazonaws.com/0/87163/0f6dea4e-1321-eae4-45b5-491f2a424aa9.png "スクリーンショット 2016-08-13 15.52.54.png")

# rswiftをダウンロード
[R.swiftのreleases](https://github.com/mac-cain13/R.swift/releases)からファイルをダウンロードします。
※リリースされている最新バージョンをダウンロードしてください。
![スクリーンショット_2016-08-13_16_04_40.png](https://qiita-image-store.s3.amazonaws.com/0/87163/57e9a101-c9f4-0854-845c-ea853152acd2.png "スクリーンショット_2016-08-13_16_04_40.png")


# rswiftファイルをプロジェクトのrootに追加
ダウンロードしたzipファイルを解凍すると下記のファイルがありますので
rswiftファイルをプロジェクトのrootに追加してください。
![スクリーンショット 2016-08-13 16.10.36.png](https://qiita-image-store.s3.amazonaws.com/0/87163/dfcbd8d5-4b4d-6e08-2dd5-c1d5a5bebae4.png "スクリーンショット 2016-08-13 16.10.36.png")

# R.swiftのscriptを追加
Target > Build Pharses > + からRun Scriptを追加します
![スクリーンショット 2016-08-13 16.15.25.png](https://qiita-image-store.s3.amazonaws.com/0/87163/fd55a16a-17a5-e875-5ed2-810b853dd540.png "スクリーンショット 2016-08-13 16.15.25.png")


```
"$SRCROOT/rswift" "$SRCROOT"
```
を記述し、
ドラッグ＆ドロップでCompile Sourcesより上段に移動します。

![スクリーンショット 2016-08-13 16.20.16.png](https://qiita-image-store.s3.amazonaws.com/0/87163/91184cf8-c5dd-ab4e-caea-218df062ee54.png "スクリーンショット 2016-08-13 16.20.16.png")

# ビルド
ビルドするとR.generated.swiftが追加されていますので、Xcode上にもファイルを追加します。
![スクリーンショット 2016-08-13 16.23.47.png](https://qiita-image-store.s3.amazonaws.com/0/87163/38764058-5ca1-f3f2-7514-048ca074b70c.png "スクリーンショット 2016-08-13 16.23.47.png")
![スクリーンショット 2016-08-13 16.24.46.png](https://qiita-image-store.s3.amazonaws.com/0/87163/fa395e48-895d-cd32-9d77-afcb7cfa4a0c.png "スクリーンショット 2016-08-13 16.24.46.png")

# storyboardやimageなどの補完が出来るようになります。
![スクリーンショット 2016-08-13 16.26.23.png](https://qiita-image-store.s3.amazonaws.com/0/87163/95c412b7-6ce1-f2e4-ad54-ad73c80e16b0.png "スクリーンショット 2016-08-13 16.26.23.png")

# その他
R.generated.swiftをGitの管理外にしましょう。

```.gitignore:.gitignore
# R.swift
*.generated.swift
```

# 参考
[Carthage support #42](https://github.com/mac-cain13/R.swift/issues/42)
[R.swift](https://github.com/mac-cain13/R.swift)
[R.swift.library](https://github.com/mac-cain13/R.swift.Library)