web-dev-qa-db-ja.com

iOSアプリストアの拒否-アプリは「prefs:root =」非公開URLスキームを使用します

最近、アプリの新しいバージョンをiTunes Connectにアップロードしました。このメモでアプリが拒否されました

アプリは「prefs:root =」非公開URLスキームを使用しています

私は、ターミナルでプロジェクト全体でgrep -Rを使用してprefs:rootを見つけようと試みましたが、アプリでUrlスキームを使用しないことをほぼ確信しています(大文字と小文字を区別せずにApp-Prefsなどを一致させることもできます)。

私も多くのココアポッドライブラリを使用していますので...私の質問は...どのライブラリがその許可を使用しているかを知る方法はありますか?

Xcodeの検索結果のスクリーンショット

enter image description here

私のプロジェクトで使用されるフレームワーク:

  • AmazonFling
  • cocoaPodsからの多くの人(関係ないのでリストされていません:私の答えを見てください)
15
Noel Carcases

同じ拒否フォームに直面しました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)
    }
  }
24
Gurjinder Singh

私は同じ問題を抱えていて、次のように解決しました:-

ステップ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に再送信してください:)

4
Karanvir Singh

私は同じ問題に直面しました。 「prefs:root =」URLスキームはiOS 11では受け入れられません。UIApplicationOpenSettingsURLString値を使用して修正しました。

参照画像

'prefs:rootで検索する必要がある場合:

プロジェクトのターゲット->情報-> URLタイプの順に移動し、「prefs」や「prefs:root」などの値を持つURLスキームを見つけます。

2
Rupak Shakya

最後に問題が発生したのは、別の方法を使用してインストールされたため、ポッドにリストされていない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 を参照してください

1
Noel Carcases

また、同じ問題に直面し、これにより解決しました。

if let url = URL(string:UIApplication.openSettingsURLString)

    {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    }
0