LoginSignup
0
1

More than 1 year has passed since last update.

Missing Purpose String in Info.plist File.

Posted at

はじめに

本業のアプリをAppStoreConnectにアップロードした際にリジェクトを喰らいました。

Missing Purpose String in Info.plist File. Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSLocationWhenInUseUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.

簡単に訳すと、Info.plistにNSLocationWhenInUseUsageDescription keyを追加してくれ!と書いてます。

NSLocationWhenInUseUsageDescriptionはフォアグラウンドで位置情報を必要とするアプリではInfo.plistに追加しないといけませんが、自分がアップロードしようとしたアプリではそもそも位置情報サービスを必要としていなかったので非常に困りました。

何が原因かを調べていくうちに導入していたOneSignal iOS SDKが悪さをしてました。

原因

OneSignal iOS SDKを使用するとジオフェンス機能を用いたプッシュ通知を使用することができるそうで、この部分がアプリが実際に位置情報サービスを使用していない場合でも位置情報サービスを使用するアプリと認識してしまうそうです。

ジオフェンス機能とは、任意の場所を指定し、その圏内を出入りするとあらかじめ決めていた作業を自動で行なってくれるというものです。

ジオフェンス機能を用いたプッシュ通知では、例えばコンビニの近くを通ったりすると、プッシュ通知でクーポンを受け取ったり出来ます。

解決方法

info.plistにNSLocationWhenInUseUsageDescriptionを追加し、OneSignal.setLocationShared(false)を呼び出すだけです。

OneSignal.setLocationSharedは位置情報の収集を無効または有効にするAPIでfalseを指定している為、位置情報を使用されることはありません。

最後に

同じようにリジェクトになった方の中には、「Info.plistにNSLocationWhenInUseUsageDescriptionとNSLocationAlwaysUsageDescriptionを追加して下さい 」と言われてました。

なのでもうリジェクトを喰らいたくなかった自分は、念には念という事でNSLocationAlwaysUsageDescriptionも追加してアップロードした所、リジェクトが消えました!

めでたし。

参考にしたもの

Your app "infomobi" (Apple ID: XXX) has one or more issues - on deploy

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1