[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 the audio key in their UIBackgroundModes in order to use CoreMIDI’s MIDISourceCreate(_:_:_:) and MIDIDestinationCreate(_:_:_:_:_:) functions. These functions return kMIDINotPermitted (-10844) if the key is not set. See Information Property List Key Reference for more information.

といった記載もある。

MIDIを使うなら、UIBackground Modes に audio のキーが必要 ってことなら、
iOSの仕様だから、却下される理由にはならない気がする。

MIDIを使うのをやめたら、全て解決!?
かもしれないけど、
・サウンドフォントを使って音を出したい。
・音程をノート番号で指定したい。
・再生するテンポ(BPM)を指定したい

これを実現するなら、MIDIを使うのが楽だと思います。

AudioKitのMIDIを使ってて、バックグランドモードを無効で使う方法
本当にないのか、もう少し調べてみることにします。

その他

AudioKitをセットアップしていくと、マイクに接続をしているようで、確認ポップアップが表示されることがあります。
マイクも使う必要がないので、無効にしたいけど、ここもやり方がわからないので、合わせて調べてみようと思います。



コメント

このブログの人気の投稿

[Swift] StoryBoardを使用しない - UITextFieldで編集不可にする方法

[Music] DTM初心者のためのドラム打ち込み その2

[Swift] UISliderをカスタマイズしてみる