2021年6月3日木曜日

DJIのMobile SDKのサンプルデモアプリがやっと動いた話

 何よりも、サンプルアプリが動かなければ仕方がないので、この二、三日、なんとか動かそうと必死だった。サンプルアプリについては、

こちら

にある。

Swiftで書かれた、iPhone用のものである。ほぼその通りにやったつもりだったが、実行段階で、

libsystem_kernel.dylib`__abort_with_payload:

    0x1b2f8d14c <+0>:  mov    x16, #0x209

    0x1b2f8d150 <+4>:  svc    #0x80

->  0x1b2f8d154 <+8>:  b.lo   0x1b2f8d170               ; <+36>

    0x1b2f8d158 <+12>: stp    x29, x30, [sp, #-0x10]!

    0x1b2f8d15c <+16>: mov    x29, sp

    0x1b2f8d160 <+20>: bl     0x1b2f6b1fc               ; cerror_nocancel

    0x1b2f8d164 <+24>: mov    sp, x29

    0x1b2f8d168 <+28>: ldp    x29, x30, [sp], #0x10

    0x1b2f8d16c <+32>: ret    

    0x1b2f8d170 <+36>: ret    

こんなエラーが出てしまう。
色々調べたが、結局、デバッカコンソールの文章に解決策があった。
2021-06-03 19:47:53.451111+0900 DJISDKSwiftDemo[7921:667412] [access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSBluetoothAlwaysUsageDescription key with a string value explaining to the user how the app uses this data.
つまり、info.plistにNSBluetoothAlwaysUsageDescriptionのキーを付け加えて、何かしなければならないということなのだ。こんなこと、ネットには何の情報もなかった。そこで、
Privacy - Bluetooth Always Usage Description
のキーを設定し、値に、Connection to controllerと書いた。値はなんでもいいようだが、アップルの審査を通そう何と考えると真面目に書く必要があるのかもしれない。
これでやったら、無事起動した。私のiPhone 7 plusで動いた画像は以下のようである。

コントローラーと繋げないと実際は動かないが、ここまできてホッとしている。



0 件のコメント:

コメントを投稿

920MHz帯無線通信モジュールTY92SS-E2730を使う

 先にも書いたが、ドローン2号機上のコントローラーはラズパイ4で、それとのやりとりをもともとWIFI経由で予定していたが、機体がアルミパイプであるために通信が不安定で使い物にならなかった。そこで、プロポに変えた。プロポの信号取り出しもなんとか安定できるようになったが、そのシステム...