Widgetが一覧に表示されなかった時にやった事

現象

Widgetを追加したアプリをTestFlightで実機で確認した時、Widget一覧に表示されない場合があった。シミュレータでは表示されていたので実機でも表示されるだろうと思っていたが、何度かアーカイブしてTestFlightにアップしても変わらなかった。

解決方法を見つけるのに結構な時間がかかってしまったので、忘れないようにメモしておく。

解決方法

普段はアーカイブする前に全てクリアしてからWidgetExtensionのビルドを実施せずにアーカイブのみ実施していたが、クリア後にWidgetExtensionのビルドを実施する事でWidget一覧に表示されるようになった。

手順

  1. Xcodeの設定
    TARGETSでアプリ本体を選択
    Frameworks, Libraries, and Embedded ContentにWidgetExtension.appexを追加
  2. ビルド
    SchemeでWidgetExtensionを選択し、Any iOS Device (arm64)用にBuildする
  3. アーカイブ
    Schemeでアプリを選択し、Any iOS Device (arm64)用にArchiveする

結論

WidgetExtensionはTARGETS設定で追加していても、アーカイブで自動でビルドされないので、個別にビルドする必要があるようだと判明した。