iOS9のアプリをiOS10でも対応することになりXcode8に変えた。
iOS10でも問題なく動作することが確認できたので、リリースするためにmasterへPushした。
そこで問題が起こった・・・・。
ARCHIVEに失敗したのだ・・・・・。
Xcodeの設定やらfastlane関連のファイルもなんもいじってないので起きた原因がよくわからなかった。
Xcode8に変えて起こったので「fastlane Xcode8」な感じでググったら下記issueに当たった。
https://github.com/fastlane/fastlane/issues/5163
どうやらXcode8から導入されたAutomatic Signingいよるものらしい。
Automatic Signingを使うと複数のCertificatesなど証明関連のものが紐づけられていた。
( ˘ω˘)oO(複数あったからfastlaneが認識できなかったのか・・・・?)
応急的な対応なのかもしれないがとりあえずAutomatic SigningをオフにしBuild SettingsのSigningでアプリに該当する ProvisioningProfileを設定した。
これでARCHIVEの問題は解決した。
次にぶち当たったのはtoolchain
bundler: failed to load command: fastlane (/Users/distiller/hogehoge/vendor/bundle/ruby/2.3.0/bin/fastlane)
Errno::ENOENT: [!] No such file or directory @ rb_sysopen - /Applications/Xcode-8.0.app/Contents/Developer//Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos/libswiftWebKit.dylib
Xcode7ではなかったのでまたググってみた。
そしたら下記のisuueに当たった。
https://github.com/fastlane/fastlane/issues/5998
私の場合、fastfileに toolchain: "com.apple.dt.toolchain.Swift_2_3"と
,use_legacy_build_api: false
を追加してやったら無事itunesconnectに上げることができた。
use_legacy_build_api: falseにする理由はtoolchainのオプションを使えるようにするためだとか。
( ˘ω˘)oO(デフォルトではSwift3のtoolchainが使われているのかな?)
Signingについては他に真っ当なやり方があるのかもしれないがとりあえず緊急で対応、ひとまずアプリが上げられて良かった。