今日急に今まで通っていたiOSのアプリケーションのビルドが通らなくなりました。 ビルドが通っていたmasterからブランチ生やしてempty commitを通してみても通らない、これはどういうことだ…と思って調べていたら、どうもGitHub ActionsのmacOSのImageのバージョンアップが行われたようでした。
Release macOS 10.15 (20201011 update) · actions/virtual-environments · GitHub
再現環境
実際に使用したCIのフローは以下のファイルです
原因
Xcode 12ではアンブレラヘッダ内のinclude文はヘッダの指定が ""
ではなく <>
を想定していて、コンパイラ側で ""
をwarningではなくエラーに倒すオプションをデフォルトで有効にしているからだそうです。
対処法
GitHub ActionsのmacOS Hostのイメージはじき全体に行き渡るので(今は20201003とかが降ってくることもある)環境を変えるの困難です。
そのため上記Issueに書かれているように Podfile
側にビルド設定を記載することで対処するのが良いでしょう。
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings['CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER'] = 'NO' end end
変更前のActionsのログ ... · yamachu/swift-5.2x-5.3-swiftlint-different@15a4547 · GitHub
変更後のActionsのログ Set "CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER" NO · yamachu/swift-5.2x-5.3-swiftlint-different@9e1fb4c · GitHub
無事にビルドが通りました。(同じXcodeのバージョンだったのに、なんでイメージが20201011.1になったら落ち始めたのかがはっきりしなくて非常に気持ちが悪いですが)
そろそろリリースが予定されているCocoaPods 1.10.0*1ではデフォルトで上記の設定が入るようなので、リリースが待てない、今すぐCIをどうにかしたいという場合は試してみてください。