[雑談]なぜかITCからMissing Info.plist keyと言われた

先日アプリのアップデート作業をしていて、無事終えアップロードして一息ついていた時に...
ITCからちょっと問題有るよ!っていうメールが来ました

ITCから心当たりのないissueメールが来てあたふた

っていう話です
(個人アプリの構成によった話になるので一般的な内容ではないです)

普段こないメールがくるとドキッとしますね!

ちょっと汚れた手を清めるために(?)自アプリのアップデートをしていて、
ひさしぶりに触ったアプリだったので、思い出しながらも無事作業を終え...
いざITCへアップロード!後は反映を待って申請....

ITCからメール

いつものように準備完了したよ!っていうアレかとおもいきや...

"(App ID) has one or more issues"
というタイトル...内容は

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

Missing Info.plist key - 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.

なるほどね、、、センシティブな情報にアクセスしようとしているのにinfo.plistに必要な情報がないよ!と...
そういう情報をあつかうようなことをする場合、そこらへんの設定が必要なのよね。
しってる。それは知っている。。。

もんだいはそこじゃない...なぜその注意メールが来るのか...だ。
そんな情報(今回のでいうと写真ライブラリとか連絡帳とか)にアクセスするようなのは書いていない。

私の記憶の限りにはない😇

ぶっちゃけ、うだうだ言ってないで、指摘されたものを何も考えずに追加してもいいんですけどね...
使っていないなら使っていないで何も影響ないので
使う時に初めてアラートがでてそこで意味をなしてくる設定ですし。
ただやっぱりすごく気持ち悪いですよね(汗)

ってことで調査

どうせITCがバグってるんでしょ(失礼w)とか思いつつも...
ざっくりコードを見返しながら記憶を掘り起こしつつ。。。
やっぱりなにもない。そんなものはない...。

なんかのライブラリ...か?

pod updateぶつかまして、いろいろアップデートしちゃったので、
そこらでなにか変わったか?...と

機能的には...ニフクラか!?と(失礼その2w)
ファイルストアとかで便利機能の一部としてアクセスしているとか!?
アカウント連携とかの便利機能と一部としてアクセスいているとか!?
などと思いつつも、いやーアテもなくコード追うのもしんどいし...
ということで、上記の権限が必要になりそうなコードで grep かけてみることに...

あれこれやっている中で、そのなかの一つCNContactStoreで結果あり!
犯人は...AlertAndPickerというライブラリでした
(今回のアプデ作業で入れたやつだった(笑))
画像系の権限はPHPhotoLibraryでしょうかね

これのなかで、使われていましたね。
画像ピッカーとか、国コードピッカーとかで使っていそうですね。

該当の箇所は今回全然つかっていないので、まるっと削除して無事アップロードできました!
このライブラリ手動で導入していたのがよかった。
というか、CocoapodにもCarthageにも対応していないので手動しかないのだけれど。
イマドキ珍しいですよね...どちらにも対応していないの。
気合いれて作られている感ありますし。🤔
(それが伝わっているからかスター数もなかなかです)

ってことで、同じライブラリ使っている人は少し頭においておくといいかもですね
(いるかな?(笑))


このメールで通知はありがたいのですけど(対応が漏れた場合クラッシュするやつなので)、
該当箇所とかも教えてくれるとありがたいですよね〜〜
今回のように自分でやったのではない場合、見つけ出すのなかなか苦労しそう

そのくせ、WKWebViewを使っている場合は教えてくれないですよね。
WKWebViewもじつはinfo.plistに権限周りの記述が必要なんですよね。
画像長押しとかで画像を保存する機能があるので。
🍎灯台下暗し!(笑)

参考

CNContactStore
PHPhotoLibrary