Xcode 10 以降で Cordova ビルドが失敗するようになったのを直す方法

Xcode 10 から、新しいビルドの方式が標準採用になり、現時点ではまだ Cordova (cordova-ios) がそちらのビルドシステムに対応していない様子。

Cordova ビルドコマンドに --buildFlag="-UseModernBuildSystem=0" を渡すと、旧ビルドシステムを利用してビルドできるようになるのだが、プロビジョニングプロファイルを端末に自動インストールしてくれなくて困っていた。

# 一旦コレでしのげるが…
$ cordova build ios --buildFlag="-UseModernBuildSystem=0"
$ cordova run ios --buildFlag="-UseModernBuildSystem=0"

そこでもう少し調べてみると、Xcode 上で設定変更をすれば、このオプション引数を指定することなく、以前の挙動に戻せるようだ。

対象の症例としては、Xcode 上で実機向けにビルドした時に以下のようなメッセージが出る場合。

The executable was signed with invalid entitlements.

The entitlements specified in your application's Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).

設定変更の方法だが、

  1. Xcode メニューの File → Project Settings に進み
  2. 「Build System:」を「New Build System (Default)」から「Legacy Build System」に変える

ことで、旧ビルドシステムを選択し、プロビジョニングプロファイルの自動インストールもできるようになった。

とりまこんな感じ。