9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Flutter製のiOSアプリでApple Watchを連携する際にハマったこと

Last updated at Posted at 2021-11-06

Flutter製のiOSアプリでApple Watchを連携する際にいろいろハマった点があったのでメモに残しておきます。

環境

  • Flutter 2.5.2
  • Xcode 13.0

基本的な手順

  • XcodeのiOSプロジェクトにWatchのターゲットを追加
    • プロフェクトフォルダ内/ios/Runner.wcworkspaceをXcodeで開く
    • File>New>Target>WatcOS>Watch App for iOS App
    • 任意のプロジェクト名(ここの記事ではwatchとする)をつけて作成
  • bitcodeをYESに変更
  • iOSとWatchOSのバージョン番号を一致させる
  • Flutter Method ChannelでFlutterとSwift間のデータのやり取りを実装

詳細はこちらの記事を参照ください。画像もありとてもわかり易いです。

参考記事には書いてないが対応が必要だったこと

watchフォルダにInfo.plistを作成してそれを利用するように設定する

  • Info.plistファイルを追加

    • watchフォルダを右クリック>New File...>watchOS>Property File
    • Targetのチェックボックスはすべて解除する
      3.png
  • TARGETS>watch>Infoにもともとある設定を作成したInfo.plistに追加(コピペできる)

  • watchのターゲット>Build Settings>Info.plist Fileの項目に追加したInfo.plistのパスを記述
    5.png

Supported PlatformをwatchOSに変更

  • TARGETSのwatch, watch WatchKit ExtensionともにwatchOSに変更する

以上でエラーなくビルドが通ると思います。

ハマった点

何度ビルドしてもWatchにアプリがインストールされない

  • iOSのアプリを削除してからビルドするとインストールされる

XcodeからはビルドできるがVSCodeからビルドできない

  • フォルダ内にinfo.plistを作成。Buil settingsのinfo.plist fileにパスを記述して解決。

Flutter側からはInfo.plistのWKCompanionAppBundleIdentifierの設定を見てwatchアプリがあるかどうかを確認してる。今のXcodeだとwatchのターゲット追加したときにInfo.plistが生成されない模様。

[flutter_tools] fix build for projects with watchOS companion app by tauu · Pull Request #51126 · flutter/flutter

アーカイブでエラーが出る

multiple commands produce…というエラー

  • 追加したInfo.plistのTarget Membershipにチェックされてるのであれば全部外して解決。

Could not run build/ios/iphoneos/Runner.app on …というエラー

  • VSCode, Xcodeを再起動、flutter cleanで解決。
9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?