(実機用にビルドするとエラー、BundleIDがデフォルトのままなのがいけないのか?
It appears that your application still contains the default signing identifier. Try replacing 'com.example' with your signing id in Xcode: open ios/Runner.xcworkspace Encountered error while building for device.
指定されているファイルではないが、、怒られているcom.exampleはproject.pbxprojにしかないので。。
% pwd /Users/<usr_name>/lang/flutter/awsiot/ios/Runner.xcodeproj % grep example project.pbxproj PRODUCT_BUNDLE_IDENTIFIER = com.example.awsiot; PRODUCT_BUNDLE_IDENTIFIER = com.example.awsiot; PRODUCT_BUNDLE_IDENTIFIER = com.example.awsiot;
これらをApple Developerに登録しているBundleIDに替えてみる。
% diff bkup project.pbxproj 298c298 < PRODUCT_BUNDLE_IDENTIFIER = com.example.awsiot; --- > PRODUCT_BUNDLE_IDENTIFIER = jp.dxxxxxxk.flutter; 427c427 < PRODUCT_BUNDLE_IDENTIFIER = com.example.awsiot; --- > PRODUCT_BUNDLE_IDENTIFIER = jp.dxxxxxxxk.flutter; 450c450 < PRODUCT_BUNDLE_IDENTIFIER = com.example.awsiot; --- > PRODUCT_BUNDLE_IDENTIFIER = jp.dxxxxxxk.flutter;
メッセージが変わったものの怒られ続ける。Xcodeを走らせて手当が必要かも
根本原因が分からなかったので、Xcodeを使って一度プロジェクトをコンパイル、正常に動作したので、
コマンドラインに戻って、再度ビルドしたが怒られる(WindowsPCからMacにリモートで入って作業)
直接Macで操作すると正常にビルドできた(リモートだとNGなのは書き込み権限によるのか、環境変数の違いか。。)
以下でビルド
$ flutter build ios
今度は正常にビルドできたので、以下で実機にインストール (デバイス名省略しているので、実行中に聞かれます)
$ flutter install
この作業で、AWS IoTに接続してスマートメータの瞬時値を1分周期で表示できるスマフォアプリができた。以下がスマフォアプリの画面
前回と変わりませんが、AWS IoT CoreにMQTTで繋いでいる
どれだけ要望あるか分かりませんが、ソースは清書できたらGitLabに上げる予定(今はまだかなり汚いコードなので)
残る作業は、、スマフォから参照したい時に更新リクエストを出せるPublishする機能を作る、AWS IoT CoreのPublishをフックしてLambdaを呼び出してCRONを起動するスクリプトを作る(このままだったら24/365で1分周期でLambdaが動いてPublishするのでコストが無料枠を超えそうで、そもそも誰も見ていない時にPublishしまくるのは無駄)