Appstore connectにレビュー用にアプリを送信しました。アプリはまだ審査中ですが、エラーを修正する必要があることを通知する電子メールを受け取りました。メッセージの内容は次のとおりです。
Dear Developer,
We identified one or more issues with a recent delivery for your
app XXXXX. Your delivery was successful, but you
may wish to correct the following issues in your next delivery:
"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
NSLocationAlwaysUsageDescription key with a user-facing purpose
string explaining clearly and completely why your app needs the
data. Starting spring 2019, all apps submitted to the App Store
that access user data will be required to include a purpose
string.If you're using external libraries or SDKs, they may
reference APIs that require a purpose string. While your app might
not use these APIs, a purpose string is still required. You can
contact the developer of the library or SDK and request they
release a version of their code that doesn't contain the APIs.
After you’ve corrected the issues, you can use Xcode or
Application Loader to upload a new binary to iTunes Connect.
Best regards,
The App Store Team
私のアプリは万博で完全に構築されていて、Info.plistにアクセスしてそれを変更する方法がわかりません。
何か案が ?
Expoを使っているのであれば、infoPlistをapp.jsonに追加してsolveを追加できます。
"expo": {
"ios": {
"bundleIdentifier": "com.app.myapp",
"infoPlist": {
"NSLocationAlwaysUsageDescription": "Some message to appease Apple.",
},
},
}
2019年4月編集:2019年春が始まったため、これら2つのキーを追加する必要があります。 NSLocationAlwaysUsageDescription
は廃止され(iOS 11以降)、NSLocationAlwaysAndWhenInUseUsageDescription
およびNSLocationWhenInUseUsageDescription
に置き換えられていることに注意してください。 iOS 11より低いバージョンをサポートする場合は、3つの値を使用する必要があります。
要するに:
NSLocationAlwaysAndWhenInUseUsageDescription
AND NSLocationWhenInUseUsageDescription
を追加しますNSLocationAlwaysUsageDescription
を追加しますNSLocationUsageDescription
を追加できます。アプリが位置情報機能を使用していない場合でも、昨日同じ問題に直面しました。このオプション機能を備えたプロジェクトに含まれるフレームワークに関連している可能性があります。
アプリが承認されたことを確認できますinfo.plist
のNSLocationAlwaysUsageDescription
およびNSLocationWhenInUseUsageDescription
キーがなくても
実際、Appleがメールで述べたように:
2019年春以降、ユーザーデータにアクセスするApp Storeに送信されるすべてのアプリには、目的の文字列を含める必要があります。
そのため、このキーをプロジェクトに追加するだけで(忘れないように)、次の更新でに含めることができます。
info.plist
に2つの新しいエントリを追加し、NSLocationAlwaysUsageDescription
とNSLocationWhenInUseUsageDescription
をキーとして使用し、それらを値として使用する理由の簡単な説明を(実際に使用しない場合でも)追加します。 ..)。
私はストアにいくつかのアプリを持っています、そして、私はQAのためにバージョンを配布しようとしました、そして同じことが2つの異なるアプリで起こりました。これはAppstore connectへのビルドのアップロードを受け入れるための新しい基準であると思います。
解決策は簡単で、.plistファイルに次の行を追加してください。
<key>NSLocationAlwaysUsageDescription</key>
<string>custom message</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>custom message</string>
シモンズ:私の場合は場所の機能を使用していませんが、私はAppstoreの接続のガイドラインに準拠するためにこれらの行を追加しました。その電子メールを受け取った後に、私は彼らがそれがいくつかの問題を抱えていると言ったときでさえ、私はアプリをテストすることができました。
私はあなたのためにこの仕事を願っています。
NSLocationAlwaysUsageDescriptionあなたの場所はあなたのためのxyzの特典に必要ですNSLocationWhenInUseUsageDescriptionあなたのためのxyzの利益のために必要です
同じEメールを受信しましたが、CoreLocationをまったく使用していません。簡単に検索した結果、Parse SDKはCoreLocationを使用できることがわかりました。 AppleのEメールでは、彼らははっきり言っています:
外部ライブラリまたはSDKを使用している場合は、目的の文字列を必要とするAPIを参照している可能性があります。
つまり、使用していなくても、コード、その他のライブラリ、またはSDKがCoreLocationを使用できるようになると、「使用中」および「常に使用」のプライバシーに関する説明を提供する必要があります。
それはまたAppleからの新しい何かでありそして今のところそれはただの警告であるが、それは新しい提出のために2019年春から必要とされるであろう。
より簡単にするために、info.plistにこれらの行を追加することができます。 2019年春から、App Storeに送信されてユーザーデータにアクセスするすべてのアプリに目的の文字列を含める必要があるため、これらのエラーが発生しています。
以下の行をあなたのplistに追加してください
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) needs Location access for "some reason"!</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) needs Location access for "some reason"!</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) needs Location access for "some reason"!</string>
だから今、4つのケースがあります。
NSLocationAlwaysAndWhenInUseUsageDescription (iOS>11)
NSLocationWhenInUseUsageDescription (iOS>11)
NSLocationAlwaysUsageDescription (iOS<=10)
NSLocationUsageDescription (seems very old, iOS8?)
アップルはこう述べています。
"Add the NSLocationWhenInUseUsageDescription key and the NSLocationAlwaysAndWhenInUseUsageDescription key to your Info.plist file."
そして:
"If your app supports iOS 10 and earlier, add the NSLocationAlwaysUsage"
NSLocationUsageDescriptionは無効になっているようです。ADCサイトでの唯一の参照は「 https://developer.Apple.com/ibeacon/Getting-Started-with-iBeacon.pdf 」です。
確かに、最初の3つを使ってください。
この問題は含まれていないために発生しています
<NSLocationAlwaysUsageDescription>
あなたのアプリのために。 AppStoreにアプリを送信しようとしたときにも同じ問題に直面しました。アプリが処理された後、私は同じメールを受け取りました。説明を追加したので、解決しました。
お役に立てれば。
これらの答えはすべて、警告を回避するためのApp Storeの規則への準拠方法を示していますが、実際にそれらを使用しない限り、ExpoでロケーションサービスのSDK要件を無効にできるようにすることをお勧めします。可能。
2月19日に同じ問題は、私が使用していないアクセス許可の束と電子メールを得た、私はそれらがプラグインからであると思います。 Appleは3月19日にそれが必要条件であると言います、それで私はinfo.plstにこれらを加えて、もう一度アップロードしています。
本当に愚かです。
私も同じ問題に直面していますが、27時間後、私は何もしなかったとしても承認されたというEメールを受け取りました。 それで、このプロセスをすべて繰り返すのではなく、約24時間待ちます。
<key>NSLocationWhenInUseUsageDescription </key>
の代わりに<key>NSLocationWhenInUseUsageDescription</key>
を持っていました
末尾の空白を必ず削除してください
私のアプリもそれを得ました、そして私はそれについては何もしませんが、それはうまく動作することができます、私はplistにそのようなキーを追加すべきだと思う次回、ちょうどいくつかの説明を行う