どうも、フリーランスのITエンジニア兼ブロガー兼投資家のKerubitoです。
いつの間にかXcodeも10まで進みました。
さっそく意気揚々とアップデートして、開発中のプロジェクトをgitからクローン。
続けてビルドしたら・・・。
error: The new build system doesn’t yet support On Demand Resources; if you require ODR, the legacy build system can be reenabled in File > Workspace/Project Settings…. (in target 'EquipmentStatusMonitor')
やっぱりエラー発生。
ここまでくるとどこかで期待している自分がいます(笑
Xcode9の際もいろいろありましたが、期待を裏切らないXcodeちゃん。
エラーの内容としては「new build systemはODRには対応してないから無理」とのこと。
ODRってなんだっけ?
調べると、ODRはオンデマンドリソースの略で、アプリにバンドルせずにApp Storeから必要に応じて様々なデータを供給できるらしい。
そんなものを使っているつもりはないのに、なぜこんなエラーが・・・。
ちょっと気になって調べてみたら、Xcode9以降はデフォルトでODRが有効になっているらしい。
確認したら確かに有効になっていました。
ODRを使っているつもりはないが、下手に変更しておかしくなっても嫌なので、Workspace Settingsを確認します。
File->Workspace Settings...をクリック。
するとWorkspace Settingsが開きます。
すぐに違和感が。
Build Systemが「New Build System」になっている。
New Build SystemはXcode9から導入されたいずれスタンダードになるBuild Systemですが、なかなかPreviewから抜け出さないので個人的にはスルーしていました。
それがXcode10ではデフォルトになっている。
しかし、ODRにはまだ対応していないらしい。
Xcode9以降はデフォルトでODRが有効になり、Xcode10では「New Build System」がデフォルトに。
でも「New Build System」はODRに未対応。
おお、なんというホラー現象(笑
念のため別のMacで開発中のプロジェクトの設定をXcode9で確認すると「Standard Build System」になっている。
Xcode10でも「Legacy Build System」に変更。
これでビルドエラーが解消し、ひとまずめでたしめでたし。