iOS上傳AppStore被拒原因及處理方案


1.后台運行GPS

1.1 原文:

Performance - 2.5.4



Your app declares support for location in the UIBackgroundModes key in your Info.plist file but does not have any features that require persistent location. Apps that declare support for location in the UIBackgroundModes key in your Info.plist file must have features that require persistent location.

Next Steps

Please revise your app to include features that require the persistent use of real-time location updates while the app is in the background. Please also add the following battery use disclaimer in your Application Description:
"Continued use of GPS running in the background can dramatically decrease battery life."

If your app does not require persistent real-time location updates, please remove the "location" setting from the UIBackgroundModes key. You may wish to use the significant-change location service or the region monitoring location service if persistent real-time location updates are not required for your app features.

Resources

For more information, please review the Starting the Significant-Change Location Service and Monitoring Shape-Based Regions.

If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.

If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
- complete details of your rejection issue(s)
- screenshots
- steps to reproduce the issue(s)
symbolicated crash logs - if your issue results in a crash log

  

1.2 譯文:

性能 - 2.5.4

 

  你的應用程序在Info.plist文件中的key值"UIBackgroundModes"后台模式下聲明支持"Location"定位但沒有任何需要持久的"Location"定位的特點。應用程序在Info.plist文件的key"UIBackgroundModes"聲明支持"Location"定位必須有需要持久定位的特征。

接下來的步驟

  請修改你的應用程序,使它包含在后台模式下需要實時更新定位的功能。並且請你在您的應用程序描述中添加以下的電池使用免責聲明:

  “繼續使用在后台中運行的GPS定位系統,將會大大降低電池壽命。”

  而或者,如果你的應用程序不需要持續的實時位置更新,請在鍵"UIBackgroundModes"中清除"Location"的設置。你的應用程序的功能可能更希望使用更改顯著的位置的服務"significant-change location service"或區域監控位置服務"region monitoring location service",而不是持續的實時位置更新"real-time location updates"。

資源

  對於更多信息,請查看 Starting the Significant-Change Location Service 和 Monitoring Shape-Based Regions

  如果你對再現報告中提出的問題有困難,請嘗試測試工作流程 Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions

  如果您在使用上述資源后有代碼級的問題,您可能希望與Apple Developer Technical Support協商。當DTS工程師跟蹤你,請准備提供:
  - 您拒絕問題(們)的完整細節
  - 截圖
  - 重現問題(們)的步驟
  - symbolicated crash logs - 如果你的問題導致崩潰的日志

  

  在百度翻譯基礎上加工了一下,使它符合中國人的閱讀習慣。

 

1.3 問題解決方案

  這個問題是因為我在info.plist中添加了這樣一行設置:

  XML格式:

1 <key>UIBackgroundModes</key>
2     <array>
3         <string>location</string>
4     </array>

  這個設置的用意就是在后台運行App的時候,依然實時請求定位信息。目前來看我的App是不需要這行設置的,所以我刪了這一行就可以了應該,但具體結果還是等審核完畢再來修改。若你需要這樣的功能,蘋果要求你給用戶添加一條對電池壽命的提示。

  並不清楚為何會有這樣一條設置,因為我翻閱我接手的代碼版本是有這樣一條設置的;但同時,過往有這條設置的版本,是已經上線了的版本。這很尷尬。

  另外,還有一個地方需要設置。那就是:

  用XML格式:

1     <key>NSLocationAlwaysUsageDescription</key>
2     <string>需要定位</string>
3     <key>NSLocationWhenInUseUsageDescription</key>
4     <string>需要定位</string>

  干什么用的呢,這兩條是向系統確認定位的權限的;若沒有這兩條,那么系統不會彈出請求用戶授權定位的信息。同時要明確,NSLocationAlwaysUsageDescription始終 的優先級是高於NSLocationWhenInUseUsageDescription使用期間的。后面的字符串是你想展示給用戶的信息。像這樣:

  NSLocationAlwaysUsageDescription始終:

  NSLocationWhenInUseUsageDescription使用期間:

 

 

 

 

 

2.含UGC內容(User Generated Content指用戶原創內容)卻未提供用戶協議及舉報功能

2.1 原文:

Safety - 1.2


Your app enables the display of user-generated content but does not have the required precautions in place.

Next Steps

Please revise your app to implement all of the following precautions:

- Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users.
- A method for filtering objectionable content.
- A mechanism for users to flag objectionable content.
- A mechanism for users to block abusive users.
- The developer must act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided the offending content.

 

2.2 譯文

安全 - 1.2

 

  你的應用程序可以顯示用戶生成的內容,但沒有到位必要的預防措施。

接下來的步驟

  請修改您的應用程序來實現所有的以下預防措施:
  - 要求用戶同意條款(EULA),這些條款必須清楚,絕不容忍令人反感的內容或濫用權利的用戶。
  - 一種過濾不良內容的方法。
  - 一個用戶舉報違反協定內容的機制。
  - 一種用戶阻止濫用權利用戶的機制。
  - 開發商必須在24小時內對包含不良信息的內容進行刪除和逐出提供違規內容的用戶。

 

2.3 解決方法

  App有類似於貼吧的用戶原創內容。蘋果認為你如果允許用戶發布原創內容的話,就要對用戶發布的內容進行監管,不允許出現令人不適的內容。最終處理方式是:

  1.最后,在詳情頁添加一個舉報入口。

  2.用戶發布UGC前需要提示一個EULA協議。在第一次進入UGC發布界面彈出一個對話框讓用戶確認遵守協議,如果選擇拒絕就退出界面。
  再次提交,等待審核。
 
 

3.請求用戶的定位信息卻沒有提示

3.1 原文

Legal - 5.1.5


We noticed that your app does not request and obtain the user's consent prior to accessing their location data, which is not allowed on the App Store.

Next Steps

Please revise your app to add the consent prompt for accessing the user's location data and to ensure the features are still functional if the user initially opts out.

 

3.2 譯文

法律分析 - 5.1.5

 

  我們注意到,您的應用程序在要求並獲得用戶的同意之前就訪問了他們的位置數據,這在App Store是不允許的。

接下來的步驟

  請修改你的應用程序,在訪問用戶的定位數據之前提示用戶同意請求數據,並且若用戶最初選擇的不同意,你的功能依然可以實現(我理解是再次進入界面的時候依然詢問是否允許定位?)。

 

3.3 解決方法

  用的定位是AMapLocation,仔細觀察了下似乎也確實沒有提示,應該也沒有用到系統的定位框架CoreLocation。解決方案目前想了兩種,准備再考慮下使用哪一種:

  1.直接來一個提示框,提示是否允許定位,不允許直接返回,允許就進入,同時將允許與否存在NSUserDefaults中;之后在個人設置里面加一個開關UISwitch,根據NSUserDefaults中的值決定是開還是關。

  2.使用CLLocation處理定位。

  似乎都很麻煩。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM