ダーヤス.com プレミアム

ダーヤス.comにようこそ。プレミアムな情報で、ワークライフバランスの充実を図りませんか。

XcodeでカメラアプリにはNSPhotoLibraryUsageDescription key必要

   

MaskCamという超すごい大人気アプリを3年前に作ったのですが、例によって、アップル様からアップデートしてね、の通知が来たので、これも直して提出ししています。

低品質又は名前が長いiOS,iPhone,iPadアプリがApp Storeから削除される参照)

The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this dataというエラーメッセージ

適当に最新のiOSに対応するように、最新版のXcodeで手直ししてitunes connectにアップロードをすると、問題なく送信が完了しました。

しかし、サイト上でいつまでたっても「ビルド」のところに送信済みのバージョンのバイナリが表示されず、選択ができません。

つまりいつまでも更新版のバイナリを審査に提出できない。

まあバイナリのアップロード後に、なかなか送信処理がitunes connect上で完了せず、悶々とすることは割とあったのですけど、それにしても様子がおかしい。

ちゃんとアップロードにsuccessしたのにおかしいなあと思っていたところ、以下のようなメールが私に届いていたようです。

Dear developer,

We have discovered one or more issues with your recent delivery for "MaskCam". To process your delivery, the following issues must be corrected:

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.

Once these issues have been corrected, you can then redeliver the corrected binary.

Xcode上では「アップロードは問題なく完了したよ」と表示されても、こうやってエラーが出ることもあるらしいです。初めて知った。

内容は多分、このカメラアプリは「写真フォルダ」にアクセスしようとしていて、写真はプライバシー性のある部分だから、使用者に対し、そのプライバシー性のある部分にアプリがアクセスしようとしていることと、その理由を明示せよ、ということだと思います。

xcodeやswiftはちょっと使っていないだけで色々と仕様が変わるので、継続的に使っていないとついて行けなくなりますね。

それでInfo.plistで「NSPhotoLibraryUsageDescription key」というものを探してみたけれども、一向に見つからない。

どうすればいいのだろうかと考えていたら、以下のような役立つサイトがありました。

http://iOS10ではカメラアクセスなどの目的を明示しないと強制終了する

なるほど、「Info」タブの「Custom iOS Target Properties」で選択すべきキー名は、「NSPhotoLibraryUsageDescription」というものではなく、「Privacy - Photo Library Usage Description」というものなのですね。。

わかりにくい。。。

そこで、英語でどう書いたらいいのかわからないけど、写真にアクセスする理由・目的を「Accessing to the Photo Library when you take a photo and save it.」とでも書いておきました。

iPhoneアプリの審査は厳しいと言われますし、拒絶される理由もわからないとも言われますが、こういった英語の表現を理由に拒絶されることはありません。多分。
英語がブロークンでおかしかろうが、全然OK。多分。

XcodeでカメラアプリにはNSPhotoLibraryUsageDescription key必要

まあ私のアプリのように、撮った写真を色々加工したりするアプリであれば、写真にアクセスすることになるのは必至でしょうから、keyに上記のような記載を明示することは必須になるでしょうね。

以前より微妙に手続きが複雑になりました。

 - アプリ開発