[iOS] Appの審査
先日、Appを審査に出したら、Rejectされました。
はい。フォアグランドの利用しか想定していないので、バックグランドモードでは音がならなくても問題ないです。では、なぜ、バックグランドモードを有効にしたのか?答えは、エラーを回避するため です。
Rejectの理由
申請したAppは、バックグランドモード有効(Audio)となっているが、バックグランドモードにしても音がならないよ!ってことらしい。はい。フォアグランドの利用しか想定していないので、バックグランドモードでは音がならなくても問題ないです。では、なぜ、バックグランドモードを有効にしたのか?答えは、エラーを回避するため です。
Appで何が起きているのか
Background Modesをオフにします。
で、Appを実行してみます。
AKMIDISampler()の実行前
AKMIDISampler()の実行後
AKMIDI.swift:init():63:Initializing MIDI
CheckError.swift:CheckError:179:Error: kMIDINotPermitted: Have you enabled the audio background mode in your ios app?
フレームワーク(AudioKit)でエラーが発生します。
バックグランドモードが有効になってない! だって。
kMIDINotPermitted・・・は、CoreMIDIのエラーのようなので、AudioKitのエラーというよりは、Appleで提供されているモジュールのエラーと思われます。
バックグランドモードを有効にすると、このエラーは出なくなります。
バックグランドで再生はしないので、できることならバックグランドモードは無効にしたい。
一方で、AppleのDocumentには、
Beginning in iOS 6, apps need to have theaudio
key in theirUIBackground
in order to use CoreMIDI’sModes MIDISource
andCreate(_: _: _:) MIDIDestination
functions. These functions return kMIDINotPermitted (-10844) if the key is not set. See Information Property List Key Reference for more information.Create(_: _: _: _: _:)
といった記載もある。
MIDIを使うなら、UIBackground Modes に audio のキーが必要 ってことなら、
iOSの仕様だから、却下される理由にはならない気がする。
MIDIを使うのをやめたら、全て解決!?
かもしれないけど、
・サウンドフォントを使って音を出したい。
・音程をノート番号で指定したい。
・再生するテンポ(BPM)を指定したい
これを実現するなら、MIDIを使うのが楽だと思います。
AudioKitのMIDIを使ってて、バックグランドモードを無効で使う方法
本当にないのか、もう少し調べてみることにします。
その他
AudioKitをセットアップしていくと、マイクに接続をしているようで、確認ポップアップが表示されることがあります。
マイクも使う必要がないので、無効にしたいけど、ここもやり方がわからないので、合わせて調べてみようと思います。
コメント
コメントを投稿