Отказ в магазине приложений ios - Ваше приложение использует непубличную схему URL "prefs: root =" - PullRequest
0 голосов
/ 26 апреля 2018

Я недавно загрузил новую версию своего приложения в itunes connect. Мое приложение было отклонено с этой заметкой

Ваше приложение использует непубличную схему URL "prefs: root ="

Я почти уверен, что не использую в своем приложении никакой схемы Url. Я пытался найти префы: root, используя grep -R во всем моем проекте через терминал (без учета регистра, чтобы иметь возможность сопоставлять App-Prefs или что-то еще) .

Я также использую много библиотек cocoapods, так что ... мой вопрос ... Есть ли способ узнать, какая библиотека использует это разрешение?

Снимок экрана результатов поиска по xcode

enter image description here

Каркасы, использованные в моем проекте:

  • AmazonFling
  • многие другие из CocoaPods (не указаны, потому что не имеют значения: см. Мой ответ)

Ответы [ 7 ]

0 голосов
/ 25 января 2019

У меня была такая же проблема, и я решил ее следующим образом: -

Шаг 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, не беспокоясь:)

0 голосов
/ 05 августа 2019

Мы также столкнулись с той же проблемой и решили ее следующим образом:

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

    {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
    }
0 голосов
/ 12 декабря 2018

Я столкнулся с той же проблемой. Схема URL «prefs: root =» не принимается iOS 11. Использование фиксированного значения UIApplicationOpenSettingsURLString .

Справочное изображение

0 голосов
/ 04 октября 2018

Чтобы узнать, какая библиотека использует это разрешение, вы можете использовать эту команду в терминале

strings <file path> | grep 'prefs:root'

для поиска в зависимостях скомпилированных файлов, если вам не повезло с поиском в Xcode.

0 голосов
/ 06 августа 2018

Я столкнулся с той же самой формой отказа 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)
    }
  }
0 голосов
/ 11 июля 2018

, если вам нужно найти с помощью 'prefs: root is:

Перейдите к цели вашего проекта -> затем Информация -> затем Типы URL, там вы найдете схемы URL со значением, например, 'prefs' или 'prefs: root'

0 голосов
/ 28 апреля 2018

В конце была проблема с AmazonFling, которая не была указана в модулях, потому что была установлена ​​другим способом. Смотрите сообщение на форуме об этом: https://forums.developer.amazon.com/questions/167282/apple-app-rejected-because-of-non-public-apis-refe.html

У AmazonFling еще нет обновлений (по состоянию на 27 апреля 2018 г.), поэтому я удалил его, пока они не обновят его.


Исправлено в AmazonFling 1.3.2, выпущенной в тот же день. Смотри https://developer.amazon.com/fr/docs/fling/release-notes.html

...