Cocoapodsでミドルウェア導入しているiOSプロジェクト。Deployment TargetをiOS13からiOS14へ変更する場合のメモ。
Xcode11 のプロジェクトをXcode12 beta5 でビルドした際に対応OSを13から14へ変更し、ミドルウェア導入用のCocoapodsの設定をPodfileをエディタで開きターゲットOSを13.0から14.0へ変更した(watchOSも含まれていた6.0から7.0へ変更)。
pod update
Cocoapodsアップデート後にワークスペースファイル(xcworkspace)をXcode12 beta5でオープンするとプロジェクトのアップデートをXcode12から勧められるのでこれを実行。この時CLANGWARNQUOTEDINCLUDEINFRAMEWORKHEADER という設定がワークスペースは以下のプロジェクト(アプリプロジェクト、Podsプロジェクト)に追加される。
CLANGWARNQUOTEDINCLUDEINFRAMEWORKHEADERはダブルクォートでフレームワークを指定すると警告するという一見無害な警告オプションのように思える。
ただしビルド可能なOS範囲警告に対処しようとすると問題が発生する。
ビルド可能なOS範囲警告は以下のようなもの。
Showing Recent Messages
The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99.
XcodeはPodsプロジェクトのアップデートタイミングでビルド可能はOS範囲を修正してくれるが、Podfileで指定も可能。
CocoaPodsでインストールしたライブラリをXcode12でビルドするとDeployment Targetに関する警告が出る - Qiita
ビルド可能なOS範囲から8.0を除外後、CLANGWARNQUOTEDINCLUDEINFRAMEWORKHEADER由来の警告でビルドできなくなり焦ってしまうが、ここはおちついてCLANGWARNQUOTEDINCLUDEINFRAMEWORKHEADERの設定を、
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER=YES
から、
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER=NO
に変更すれば良い。変更箇所はワークスペース内のアプリプロジェクトおよびPodプロジェクトの二箇所となる。
Note(備考)
Cocoapods(1.9.3) でミドルウェアを更新するとCLANGWARNQUOTEDINCLUDEINFRAMEWORKHEADER の設定が=YESに戻ってしまう。Cocoapods更新時にビルドエラーとなった場合は落ち着いてCLANGWARNQUOTEDINCLUDEINFRAMEWORKHEADERを確認する。
pod update
参照元はAppleの開発者フォーラムの内容。 Xcode 12 Framework: 'Double-quoted… | Apple Developer Forums