最近、アプリの新しいバージョンをiTunes Connectにアップロードしました。このメモでアプリが拒否されました
アプリは「prefs:root =」非公開URLスキームを使用しています
私は、ターミナルでプロジェクト全体でgrep -R
を使用してprefs:rootを見つけようと試みましたが、アプリでUrlスキームを使用しないことをほぼ確信しています(大文字と小文字を区別せずにApp-Prefsなどを一致させることもできます)。
私も多くのココアポッドライブラリを使用していますので...私の質問は...どのライブラリがその許可を使用しているかを知る方法はありますか?
Xcodeの検索結果のスクリーンショット
私のプロジェクトで使用されるフレームワーク:
同じ拒否フォームに直面しましたAppleそして、アプリの設定を開くには、以下のコードを使用していましたが、iOS11では受け入れられません。
let url = URL(string : "prefs:root=")
if UIApplication.shared.canOpenURL(url!) {
UIApplication.shared.openURL(url!)
}
したがって、設定を開くには、以下のコードを使用し、アプリが承認されました。
guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
})
}
else {
UIApplication.shared.openURL(settingsUrl)
}
}
私は同じ問題を抱えていて、次のように解決しました:-
ステップ1:-アプリでPrefs:rootを検索すると、次のようなものが見つかります:-
if let url = URL(string: "App-Prefs:root=Privacy&path=LOCATION") {
// If general location settings are disabled then open general location settings
UIApplication.shared.openURL(url)
}
ステップ2:-上記のコードセクションを次のように変更します:-
if let url = URL(string:UIApplicationOpenSettingsURLString)
{
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
アプリを再構築し、心配なくApp Storeに再送信してください:)
私は同じ問題に直面しました。 「prefs:root =」URLスキームはiOS 11では受け入れられません。UIApplicationOpenSettingsURLString値を使用して修正しました。
'prefs:rootで検索する必要がある場合:
プロジェクトのターゲット->情報-> URLタイプの順に移動し、「prefs」や「prefs:root」などの値を持つURLスキームを見つけます。
最後に問題が発生したのは、別の方法を使用してインストールされたため、ポッドにリストされていないAmazonFlingでした。それに関するフォーラムの投稿を参照してください: https://forums.developer.Amazon.com/questions/167282/Apple-app-rejected-because-of-non-public-apis-refe.html
AmazonFlingにはまだ更新がないため(2018年4月27日現在)、更新するまで削除しました。
同じ日にリリースされたAmazonFling 1.3.2で修正されました。 https://developer.Amazon.com/fr/docs/fling/release-notes.html を参照してください
また、同じ問題に直面し、これにより解決しました。
if let url = URL(string:UIApplication.openSettingsURLString)
{
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}