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格式:

 <key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>

  这个设置的用意就是在后台运行App的时候,依然实时请求定位信息。目前来看我的App是不需要这行设置的,所以我删了这一行就可以了应该,但具体结果还是等审核完毕再来修改。若你需要这样的功能,苹果要求你给用户添加一条对电池寿命的提示。

  并不清楚为何会有这样一条设置,因为我翻阅我接手的代码版本是有这样一条设置的;但同时,过往有这条设置的版本,是已经上线了的版本。这很尴尬。

  另外,还有一个地方需要设置。那就是:

  用XML格式:

     <key>NSLocationAlwaysUsageDescription</key>
<string>需要定位</string>
<key>NSLocationWhenInUseUsageDescription</key>
<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处理定位。

  似乎都很麻烦。

iOS上传AppStore被拒原因及处理方案的更多相关文章

  1. iOS 上传appstore 一直卡在正在通过 App Store 进行鉴定(转)

    原帖地址:https://www.jianshu.com/p/d28714f3ef74 手动操作一下执行xcode包里面的命令行操作: (1)找到前往>应用程序里面的xcode (2)显示包内容 ...

  2. iOS 打包上传AppStore相关(2)-Xcode相应配置

    上一篇描述了如何在AppleDeveloper创建Certificates.App IDs和Provisioning Profiles的过程.本篇将详细描述在Xcode部分我们需要做的配置. 1.配置 ...

  3. iOS 打包上传AppStore相关(3)-iTunes相应配置以及使用蒲公英网站进行应用托管分发(链接/二维码)

    上一篇讲到我们最终生成了一个格式为 .xcarchive 的文件(可以右键并Show in Finder)查看.本篇我们就进行最后的设置,打包上传.另外,还有一个小福利,那就是打测试包分发链接测试. ...

  4. 关于16年2月14日以后上传AppStore出现:Missing iOS Distribution signing identity for...的问题

    2016年2月14日以后打包上传AppStore会发现出现如下的问题: 导致问题的原因是:下边这个证书过期了 以下是苹果官方给出的回应: Thanks for bringing this to the ...

  5. iOS工程上传AppStore时遇到的问题“ERROR ITMS-90046”解析

    在我们将代码写完整,测试没有bug之后,我们就可以将它上传到AppStore了,上传的过程只要操作正确并不会有太大的问题,但是打包的过程中会出现一些小问题,导致打的包不能上传或者上传的时候会出现错误. ...

  6. iOS 打包上传AppStore相关(1)-相关证书配置

    最近一个老项目需要更新迭代,一个新的项目需要上线.有一些自己出现的BUG,也有一些没搞懂到处翻资料的问题.在此想做一个总结,写一下总体步骤,尽可能的详细一些,以及自己的一些理解.有很多步骤因为我们查阅 ...

  7. 从2月14号開始,上传AppStore会碰到:Failed to locate or generate matching signing assets

    从2月14号開始,上传AppStore时可能会碰到这个问题: Failed to locate or generate matching signing assets Xcode attempted ...

  8. phpcms v9升级后台无法上传缩略图的原因分析

    phpcms V9 是目前国内使用人数最多的一款开源免费的CMS系统,正是由于他的免费性,开源性,以及其自身的功能性比较强大,所以倍受许多站长朋友们的亲来,以及许多的公司的喜欢.phpcms也为了完善 ...

  9. IOS上传文件开发

    IOS上传文件开发     在移动应用开发  文件形式上传是不可缺少的,近期把IOS这块文件上传文件代码简单的整理一下.假设大家有须要安卓这边的代码,本人也能够分享给大家! QQ群:74432915 ...

随机推荐

  1. 用T4消除代码重复,对了,也错了

    用T4消除代码重复,对了,也错了 背景 我需要为int.long.float等这些数值类型写一些扩展方法,但是我发现他们不是一个继承体系,我的第一个思维就是需要为每个类型重复写一遍扩展方法,这让我觉得 ...

  2. 百万行mysql数据库优化和10G大文件上传方案

    百万行mysql数据库优化和10G大文件上传方案 最近这几天正在忙这个优化的方案,一直没时间耍,忙碌了一段时间终于还是拿下了这个项目?项目中不要每次都把程序上的问题,让mysql数据库来承担,它只是个 ...

  3. MAC上的包管理利器

    Homebrew- MAC上的包管理利器 2013-07-01 16:25 by 黄博文, 76 阅读, 0 评论, 收藏, 编辑 包管理器是神马东西?让我们看看wikipedia上的介绍. In s ...

  4. [COM/ATL]浅析COM的思想及原理

    COM--Component Object Model,即组件对象模型,它是微软提出的一套开发软件的方法与规范.它也代表了一种软件开发思想,那就是面向组件编程的思想. COM编程思想--面向组件编程思 ...

  5. Java synchronized 详解

    Java synchronized 详解 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 1.当两个并发线程访问同一个对象object ...

  6. SSM整合案例(Spring+Struts+Mybatis)

    项目目录结构 第一步:创建数据库和数据表 CREATE DATABASE IF NOT EXISTS mybatis; USE mybatis; CREATE TABLE t_user ( ) NOT ...

  7. SASS使用CSS3动画并使动画暂停和停止在最后一帧的简单例子

    今天在手机上试了试这个 css3 动画效果,可以把动画效果停留在最后一帧上,以及鼠标 :hover 暂停动画,比较实用的功能,不用 JS 也能实现这些效果了. 不过测试体验感觉手机上没有 jQuery ...

  8. RHEL账号总结一:账号的分类

    账号是一种用来记录单个用户或者多个用户的数据.RHEL中每一个合法的用户都必须拥有账号,才能使用RHEL. 在RHEL上的账号可以分为两类: 用户账号:用来存储单一用户的数据,你也可以使用一个用户账号 ...

  9. appium+robotframework的简单实例

    在上篇文章中,我们搭建好了appium+robotframework的环境,这篇文章中主要是一个简单实例. 一.测试用例编写前提 1.模拟器(或手机)连接电脑 adb devices         ...

  10. Chrome浏览器加载CSS文件TTFB waiting超时的奇葩问题

    今天本来调试 requirejs 加载js异常的问题,试了下Chrome浏览器,结果意外发现这个 CSS 加载异常的BUG,非常非常奇怪. 本地测试环境是 wi7x64 安装的 XAMPP 3.2.1 ...