表題の通り、Xcode13で生成したプロジェクトにInfo.plistを追加して古いXcodeでもビルド実行できるようにする備忘録。
Info.plistがない!コピペ^H^H^H写経できない!
って人には関係ない話なので、他の記事をどうぞ。
経緯
Xcode13で作成したプロジェクトをXcode12で開こうとしたら、開けない。
まあ、あるよねー、とプロジェクトファイルの互換性設定を書き換えてやる。
と、開けるようにはなるんだけど、実行しようとすると
No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
と起動しない。
確かに、よく見るとプロジェクト内にInfo.plistがいない。。。
原因
Xcode13からInfo.plistの内容をxcproject内に保持して、ビルド時に自動生成するようになったらしい。
対処
Info.plistの確保
Xcode13でアプリ実行して、ドックのアイコンを右クリックからのfinderで表示で、アプリケーションバンドルの中から自動生成されたInfo.plistを奪ってくる。
ゼロから自分で作ってもいいけど、面倒なので。
プロジェクトに追加
奪ってきたInfo.plistを適当なとこ(プロジェクトのソースルートなディレクトリ)とかに配置して、プロジェクトにドラッグ&ドロップして追加。
(最初から直に投げ込んでCopy if neededでもいいはずだけど、あんまり信用してない)
ソースコードではないので、ターゲットに追加はしなくてもいい。
Info.plistがいつもの位置に戻ってきました。
設定変更
追加しただけだと当然に使ってくれないので、ターゲットの設定をいじって、Info.plistを認識させる。
ついでに自動生成を切る。
Packagingのとこ
GENERATE_INFOPLIST_FILE
があるので、YES
を削除
INFOPLIST_FILE
にルートからのファイルパスを追記
で、うまくいくはず。