簡體   English   中英

ios app store rejection - 您的應用使用“prefs:root =”非公共URL方案

[英]ios app store rejection - Your app uses the “prefs:root=” non-public URL scheme

我最近向itunes connect上傳了我的應用程序的新版本。 我的應用程序被此筆記拒絕了

您的應用使用“prefs:root =”非公共URL方案

我幾乎可以肯定我在我的應用程序上沒有使用任何Url方案我試過找到prefs:root在我的整個項目中通過終端使用grep -R (不區分大小寫也可以匹配App-Prefs或其他什么。

我也使用了很多cocoapods庫...所以我的問題是......有沒有辦法找出哪個庫正在使用該權限?

xcode上的搜索結果的屏幕截圖

在此輸入圖像描述

我項目中使用的框架:

  • AmazonFling
  • 來自CocoaPods的許多其他人(未列出,因為無關緊要:請參閱我的回答)

我面臨同樣的拒絕形式Apple和打開應用程序設置我使用下面的代碼,它不被iOS11接受。

let url = URL(string : "prefs:root=")
if UIApplication.shared.canOpenURL(url!) {
    UIApplication.shared.openURL(url!)
 }

因此,要打開“設置”,我使用了以下代碼,App已獲批准。

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,無后顧之憂:)

我遇到了同樣的問題。 iOS上不接受“prefs:root =”url方案。使用UIApplicationOpenSettingsURLString值修復它。

參考圖像

如果你需要找到'prefs:root is:

轉到項目的目標 - >然后信息 - >然后是URL類型,在那里你應該找到值為'prefs'或'prefs:root'的URL Schemes

最后,帶有問題的是AmazonFling,因為使用其他方法安裝,因此未在pod上列出。 請參閱論壇帖子: 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)
    }

要找出正在使用該權限的庫,可以在終端中使用此命令

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

如果你在Xcode中搜索沒有運氣,那么在依賴編譯文件中搜索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM