fastlaneに挑戦したら
Instruments Usage Error: Ambiguous device name/identifier 'iPhone 6 Plus (9.0)':
というエラーがでてiPhone6、6plusのsnapshotが取れない。
その解決方法。多分これで解決できる人とそうでない人がいると思う。
原因
そもそも、このエラーの原因はinstrumentsがシュミレータを1つに絞れないから。
直接、ターミナルで以下のようにinstrumentsコマンドを打つとまさにこのエラーメッセージがでる。
$ instruments -w 'iPhone 6 (9.0)'
2015-09-27 16:38:06.341 instruments[16483:1693339] WebKit Threading Violation - initial use of WebKit from a secondary thread.
Instruments Usage Error : Ambiguous device name/identifier 'iPhone 6 (9.0)':
iPhone 6 (9.0) [7C010A91-2FD6-4B39-BEE0-6A7E79190324]
iPhone 6 (9.0) + Apple Watch - 38mm (2.0) [B0EDA4F8-A762-4E50-8C21-8AC1B14B30F0]
自分の環境でどの種類のエミュレータがあるか確認するには以下のコマンドをターミナルで実行する。
$ instruments -w ''
2015-09-27 17:11:17.367 instruments[23454:2226858] WebKit Threading Violation - initial use of WebKit from a secondary thread.
Instruments Usage Error : Unknown device specified: ""
Known Devices:
MacBook-Pro [...]
iPad 2 (9.0) [CF21BD2F-F0D7-42D0-BFA5-73969F98EFCA]
iPad Air (9.0) [F417D847-068B-4C96-845C-00311EA1A3AA]
iPad Air 2 (9.0) [E037658D-4F92-41F5-8F67-7A9D69D557D4]
iPad Retina (9.0) [74F2E6D0-7584-45FF-8A28-117001B107B6]
iPhone 4s (9.0) [9D7DF270-8437-4A6C-A756-358FE028F40F]
iPhone 5 (9.0) [6C76F8EA-14D4-4A1A-8DB5-7486C9F7F373]
iPhone 5s (9.0) [E8614173-5D4F-4C58-84A1-B98E8BA45484]
iPhone 6 (9.0) [7C010A91-2FD6-4B39-BEE0-6A7E79190324]
iPhone 6 (9.0) + Apple Watch - 38mm (2.0) [B0EDA4F8-A762-4E50-8C21-8AC1B14B30F0]
iPhone 6 Plus (9.0) [ACE68990-8C44-4A4C-9437-5605364F998A]
iPhone 6 Plus (9.0) + Apple Watch - 42mm (2.0) [E7BE6448-E8F3-4792-8386-0C1BAD729364]
iPhone 6s (9.0) [3137E670-C3E8-4BE6-84C7-8FA31F04EAD5]
iPhone 6s Plus (9.0) [873C6BFC-81A3-42B0-B4E4-27FA2C46440F]
これを見るとiPhone 6 (9.0)とiPhone 6 Plus (9.0)で Apple Watchが追加されている設定があるのでこれがあるとダメな様子。
この問題はfastlaneのissueにも上がっているようですがまだ未解決らしい。
https://github.com/KrauseFx/snapshot/issues/198
解決方法
iPhone6s, 6s Plusを指定する。
先ほどの確認コマンドの出力をよく見ると、自分の環境の場合はApple Watchが追加されている設定は6, 6 plusだけなので、6s, 6s plusを指定すれば1つの環境に絞れるのでinstrumentsがエラーを返さなかった。