(追記あり) circleciで最初にはまったこと - Xcodeのバージョン問題 -


greenhouseciの次はとcircleciを試してみた。
最初にはまったことがあったので、メモしておく。

## 手順
iOSのジョブを動かすようにするまでの手順は以下のとおり。

 - circleciのアカウントを用意しログインする。
 - iOSをビルドできるように右下にあるメッセージからお願いする。
   - デフォルトでは出来ずに以下のようなメッセージが表示される。
![スクリーンショット 2015-04-18 14.29.51.png](https://qiita-image-store.s3.amazonaws.com/0/37642/35445e10-95fc-7613-c57f-4668548ea07c.png "スクリーンショット 2015-04-18 14.29.51.png")
 - 連絡が来て、ビルドできるようになったらgithubにpushするなりしてビルドする。


## 最初にはまったこと
手順の通りにやって、用意しておいたサンプルプログラムでビルドしようとしたら以下の様なエラーメッセージが表示された。

```
[Info] Loading settings for scheme 'sampleci' ...2015-04-15 22:54:48.725 xctool[515:2b07] *** Assertion failure in -[XcodeSubjectInfo buildSettingsForATarget], /tmp/xctool-DguLaK/xctool-0.2.2/xctool/xctool/XcodeSubjectInfo.m:827

2015-04-15 22:54:48.926 xctool[515:2b07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed while trying to gather build settings for your scheme; tried with actions: build, test, analyze. Errors above occured while running xcodebuild -showBuildSettings:
  xcodebuild: error: The run destination iPhone 6 is not valid for Running the scheme 'sampleci'.
	sampleci.app doesn't have any SDKs to build for iPhone 6. You can change sampleci.app's Base SDK or Supported Platforms to support iPhone 6.
.
  xcodebuild: error: The run destination iPhone 6 is not valid for Testing the scheme 'sampleci'.
	sampleci.app doesn't have any SDKs to build for iPhone 6. You can change sampleci.app's Base SDK or Supported Platforms to support iPhone 6.
.
  xcodebuild: error: The run destination iPhone 6 is not valid for Analyzing the scheme 'sampleci'.
	sampleci.app doesn't have any SDKs to build for iPhone 6. You can change sampleci.app's Base SDK or Supported Platforms to support iPhone 6.
.
'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff8a89f25c __exceptionPreprocess + 172
	1   libobjc.A.dylib                     0x00007fff85a2ce75 objc_exception_throw + 43
	2   CoreFoundation                      0x00007fff8a89f038 +[NSException raise:format:arguments:] + 104
	3   Foundation                          0x00007fff833863d1 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 189
	4   xctool                              0x0000000103ff4d3e -[XcodeSubjectInfo buildSettingsForATarget] + 730
	5   xctool                              0x0000000103ff5a6b -[XcodeSubjectInfo loadSubjectInfo] + 150
	6   xctool                              0x0000000103fea4a1 -[Options validateAndReturnXcodeSubjectInfo:errorMessage:] + 3299
	7   xctool                              0x0000000103fe0129 -[XCTool run] + 1452
	8   xctool                              0x0000000103fdf2a8 main + 572
	9   xctool                              0x0000000103fdd1c4 start + 52
)

libc++abi.dylib: terminating with uncaught exception of type NSException (((xctool "-destination 'platform=iOS Simulator,name=iPhone 6,OS=latest'" "-scheme 'sampleci'" "-project '/Users/distiller/TARSampleCI/sampleci.xcodeproj'" "build" "build-tests" "run-tests" "-reporter" "pretty" "-reporter" "plain:$CIRCLE_ARTIFACTS/xctool.log" "-reporter" "junit:$CIRCLE_TEST_REPORTS/xcode/results.xml" "-sdk" "iphonesimulator" "CODE_SIGNING_REQUIRED=NO" "CODE_SIGN_IDENTITY=" "PROVISIONING_PROFILE="))) died unexpectedly
```

### circleciの環境
このサンプルコードではDeploymentTargetを```8.2```にしていた。
そして、circleciの環境は以下のとおり(2015/04/18)。

```
Software Versions
The OSX container that CircleCI uses to build has the following software versions installed:

OS X 10.9.5 (13F34) Darwin 13.4.0
Xcode 6.1.1 Build version 6A2008a
Facebook xctool 0.2.2
CocoaPods 0.36.3
xcpretty 0.1.8
shenzhen 0.13.1

https://circleci.com/docs/ios
```

Xcode 6.1.1だったので、DeploymentTargetを```8.0```にまで下げてpushしたら問題無く動作した。
ちなみに、greenhouseciではXcode 6.3が使われていたので同じサンプルコードを使っても問題が起きなかった。


CIサービスを使う上では、その環境で利用されているソフトウェアバージョンはちゃんと確認したほうが良いと思った次第。

## 追記
とうとうcircleciでもXcode6.3.1でのビルドが可能になったという連絡が来たので追記しときます。

実は、それだけでなくXcodeのバージョンを選ぶことが出来るようになったとのこと。
デフォルトは、Xcode6.1.1なのだけど、circle.ymlによって6.2と6.3.1を選べる。

やり方は以下のドキュメントを参照のこと。
参照：https://circleci.com/docs/ios#xcode-version