J'ai récemment téléchargé une nouvelle version de mon application sur iTunes Connect. Mon application a été rejetée avec cette note
Votre application utilise le schéma d'URL non public "prefs: root ="
Je suis presque sûr de ne pas utiliser de schéma d'URL sur mon application. J'ai essayé de trouver des préférences: root en utilisant grep -R
dans tout mon projet via le terminal (insensible à la casse pour pouvoir également faire correspondre les App-Prefs ou autre).
J'utilise également beaucoup de bibliothèques de cocoapodes donc ... ma question est ... Y a-t-il un moyen de savoir quelle bibliothèque utilise cette autorisation?
Capture d'écran des résultats de recherche sur xcode
Cadres utilisés sur mon projet:
J'ai fait face au même formulaire de rejet Apple et pour ouvrir les paramètres de l'application, j'utilisais le code ci-dessous et il n'est pas accepté sur iOS11.
let url = URL(string : "prefs:root=")
if UIApplication.shared.canOpenURL(url!) {
UIApplication.shared.openURL(url!)
}
Donc, pour ouvrir les paramètres, j'ai utilisé le code ci-dessous et l'application a été approuvée.
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)
}
}
J'ai eu le même problème et je l'ai résolu comme suit: -
Étape 1: - Recherchez Prefs: root dans votre application, vous trouverez alors quelque chose comme suit: -
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)
}
Étape 2: - Modifiez la section de code ci-dessus avec la suivante: -
if let url = URL(string:UIApplicationOpenSettingsURLString)
{
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
Reconstruisez maintenant votre application et soumettez-la de nouveau à l'App Store sans soucis :)
J'ai fait face au même problème. "prefs: root =" le schéma d'url n'est pas accepté par iOS 11. L'utilisation de la valeur UIApplicationOpenSettingsURLString l'a corrigé.
si vous avez besoin de trouver avec le 'prefs: root est:
Accédez à la cible de votre projet -> puis Info -> puis Types d'URL, vous devriez y trouver des schémas d'URL avec une valeur comme 'prefs' ou 'prefs: root'
À la fin, celui qui posait des problèmes était AmazonFling qui n'était pas répertorié sur les pods car il avait été installé à l'aide d'une autre méthode. Voir les messages des forums à ce sujet: https://forums.developer.Amazon.com/questions/167282/Apple-app-rejected-because-of-non-public-apis-refe.html
AmazonFling n'a pas encore de mise à jour (au 27 avril 2018), je l'ai donc supprimé jusqu'à ce qu'il soit mis à jour.
Corrigé dans AmazonFling 1.3.2, publié le même jour. Voir https://developer.Amazon.com/fr/docs/fling/release-notes.html
Nous avons également fait face au même problème et l'avons résolu par ceci:
if let url = URL(string:UIApplication.openSettingsURLString)
{
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}