仕事で現在NotificationServiceExtensionについて調べながら作業をしています
そこでこんな情報を得ました
アプリ本体のバージョンとExtensionのバージョン異なると
ストア申請時のメールにて怒られるらしい
そこで、ビルド時のRunScriptにてバージョンを合わせるようにしてやろうと考えて実装をしてみました
versionNumber="$MARKETING_VERSION"
buildNumber="$CURRENT_PROJECT_VERSION"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $versionNumber""{extensionの名前}/Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber""{extensionの名前}/Info.plist"
上記をアプリ本体側の「Build Phase」の先頭に「RunScript」を追加して登録します
ビルドを実行するとアプリ本体→Extensionの順でビルドが行われるので、Extension側実行前に書き換えが終わります
StackOverFlowとかでXCode10までの手法だと
Extension側にスクリプトを登録して本体側からバージョンを取得するやり方ばかりでしたが
XCode11になってからInfo.plistから表記場所が変わったことにより
めっちゃめんどくさいことになってしまったため、本体からならさくっと取れるので順番を逆にしてやりました