【Xcode】giboで簡単gitignore作成【Sourcetree】

Xcodeのgitignoreをどんな内容にしようか悩んでいたら、会社の人にgiboなるものを教えてもらったので、試してみました。

この記事は、[気付いたら.gitignoreはgiboで自動生成する時代になっていた](https://qiita.com/tmknom/items/c4bcebe17d25381fa45d)を参考にして、Xcode用のgitignoreを作成してSourcetreeに追加する手順を紹介しています。

## giboをインストールしよう

ターミナルを起動して、Homebrewでインストールできます。

Homebrewをインストールしていなければ、[brew.sh](https://brew.sh)でインストールしてから、つぎのコマンドを実行してください。

``` Terminal
$ brew install gibo
```

## gitignoreファイルをつくろう

それでは、gitignoreファイルをつくりましょう。

まず、ターミナルでgitignoreファイルを作成したいフォルダに移動します。
今回は、デスクトップにしてみましょう。
（もちろん、直接Xcodeのプロジェクトフォルダに移動してgitignoreファイルを作成してもかまいません。その場合はファイル名を `.gitignore` にしてください）

``` Terminal
$ cd Desktop/
$ gibo dump Swift Xcode >> gitignore
```

<img width="326" alt="001.png" src="https://qiita-image-store.s3.amazonaws.com/0/38924/94a4c53d-ffa8-3bd9-020d-1d2a1132a2a2.png">


月面（デスクトップ）にgitignoreファイルが作成できました！
作成したgitignoreをエディタで開くと、つぎの内容が書かれています。

```gitignore
### https://raw.github.com/github/gitignore/0c5ace9de99c220bb69012581d68ca6fa977449b/Swift.gitignore

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xccheckout
*.xcscmblueprint

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM

## Playgrounds
timeline.xctimeline
playground.xcworkspace

# Swift Package Manager
#
# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
# Packages/
# Package.pins
# Package.resolved
.build/

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# fastlane
#
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
# screenshots whenever they are needed.
# For more information about the recommended setup visit:
# https://docs.fastlane.tools/best-practices/source-control/#source-control

fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output


### https://raw.github.com/github/gitignore/0c5ace9de99c220bb69012581d68ca6fa977449b/Global/Xcode.gitignore

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## User settings
xcuserdata/

## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9)
*.xcscmblueprint
*.xccheckout

## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
build/
DerivedData/
*.moved-aside
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
```

チームの規約などで変更が必要であれば、修正してください。

## Sourcetreeにgitignoreを追加しよう

それでは、Sourcetreeにgitignoreを追加しましょう。

<img width="677" alt="002.png" src="https://qiita-image-store.s3.amazonaws.com/0/38924/6ff87293-bfac-83e7-9d04-e9de90022784.png">

Sourcetreeでgitignoreを追加したいプロジェクトを開いて、メニューのリポジトリ -> リポジトリ設定をクリックします。

<img width="569" alt="003.png" src="https://qiita-image-store.s3.amazonaws.com/0/38924/1ca1f094-3cf1-4b35-b187-fc1c350f6efb.png">


高度な設定タブを選択して、リポジトリ限定無視リストの編集ボタンをクリックします。

<img width="752" alt="004.png" src="https://qiita-image-store.s3.amazonaws.com/0/38924/f23bda72-cd1f-8095-912c-454c487e7b64.png">


エディタでgitignoreが開きます。

<img width="752" alt="005.png" src="https://qiita-image-store.s3.amazonaws.com/0/38924/3c219810-51f6-db28-041b-d235c521844b.png">


さきほど作成したgitignoreをコピーして、開いたgitignoreに貼りつけます。
最後に、保存してOKボタンをクリックすれば終わりです。

これで、プロジェクトにgitignoreが追加されました。
やったね！

## gitignoreファイルをつくるときの注意点

このコマンドだと追記モードになります。

``` Terminal
$ gibo dump Swift Xcode >> gitignore
```

上書きモードにしたい場合は、つぎのコマンドを実行してください。

``` Terminal
$ gibo dump Swift Xcode > gitignore
```

## ローカルのテンプレートをアップデートしよう

ローカルのテンプレートは自動的にアップデートされないようです。
アップデートしたいときは、つぎのコマンドを実行してください。

```Terminal
$ gibo -u
```

## giboをバージョンアップしよう

giboをバージョンアップするときは、つぎのコマンドをターミナルで実行します。

```Terminal
$ brew upgrade gibo
```

## Homebrewのエラーと対応方法

Homebrewでインストールを実行すると、つぎのようなエラーが表示されました。

```
Error: /usr/local/Cellar is not writable. You should change the
ownership and permissions of /usr/local/Cellar back to your
user account:
  sudo chown -R $(whoami) /usr/local/Cellar
Error: Cannot write to /usr/local/Cellar
```

エラーメッセージにあるように、つぎのコマンドを実行すると解決しました。

```Terminal
$ sudo chown -R $(whoami) /usr/local/Cellar
```

[Homebrew で Warning: The /usr/local directory is not writable. 発生](http://umi-uyura.hatenablog.com/entry/2015/05/12/124925)にも書いてあるように、権限がおかしかったみたいですね。