はじめに
「かってに通知メモ」のApp Store申請作業中に、
しつこく出続けたエラーがようやく解決できたので記録しておきます。
同じエラーで詰まっている方の参考になれば嬉しいです。
発生したエラー
Xcodeで Validate App を実行したところ、以下の2つのエラーが表示されました。
Missing Info.plist value.
A value for the key ‘MinimumOSVersion’ in bundle
Runner.app/Frameworks/App.framework is required.
Invalid MinimumOSVersion.
MinimumOSVersion in ‘Runner.app/Frameworks/App.framework’ is ”.
App.framework の Info.plist に MinimumOSVersion が存在しない、
または空になっているというエラーです。
試してダメだったこと
Build PhasesにRun Scriptを追加
Xcodeの Build Phases に以下のスクリプトを追加しました。
PLIST="${FRAMEWORKS_FOLDER_PATH}/App.framework/Info.plist"
if [ -f "$PLIST" ]; then
/usr/libexec/PlistBuddy -c "Delete :MinimumOSVersion" "$PLIST" 2>/dev/null
/usr/libexec/PlistBuddy -c "Add :MinimumOSVersion string 13.0" "$PLIST"
fi
ビルドは通過するものの、エラーは解消されませんでした。App.framework はFlutterがビルド時に生成するファイルのため、
スクリプトの実行後に上書きされてしまうのが原因でした。
解決した方法
Flutterプロジェクト内の AppFrameworkInfo.plist を直接編集することで解決しました。
ファイルの場所
ios/Flutter/AppFrameworkInfo.plist
追加した内容
</dict> の直前に以下を追記します。
<key>MinimumOSVersion</key>
<string>13.0</string>
完成形
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>App</string>
<key>CFBundleIdentifier</key>
<string>io.flutter.flutter.app</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>App</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>13.0</string>
</dict>
</plist>
この修正後に Product → Archive → Validate App を実行したところ、
エラーが消えてそのままApp Store Connectへのアップロードが完了しました✅
まとめ
| 方法 | 結果 |
|---|---|
| Build PhasesのRun Script | ❌ 効果なし |
| AppFrameworkInfo.plistを直接編集 | ✅ 解決 |
Run Scriptでは App.framework がFlutterによって後から上書きされてしまうため、
ソースファイルである AppFrameworkInfo.plist を直接書き換えるのが正解でした。
おわりに
あたらしいアプリ「かってに通知メモ」をApp Store に審査提出しました。
「かってに通知メモ」は自然な日本語を入力するだけで通知を設定してくれる、
ずぼら向けリマインダーアプリです。
現在App Store審査中です。通過したらまたご報告します!
