打包前注意点
1.改为正式环境
- 接口改成线上服务器
- 极光推送环境改为生产环境等
2.版本号
target -> general:Version
和Build
版本号
3.签名
target -> general -> signing
4.删除断点,log
5.本地化,语言包
6.Capabilities -> background modes
如果后台使用了位置,提交信息中应用描述添加免责声明
温馨提示:GPS在后台持续运行,会大大降低电池的寿命。
7.设备选择Generic iOS Device
,注意不要选择真机或模拟器。
8.edit scheme: run,archive -> debug
改为 release
9.打包ad-hoc,进行内测:clean -> build -> archive
最后,打正式包,提交APP Store。
archive注意点
- 上传app store的1024*1024尺寸的icon和屏幕截图不能加圆角,透明度,通道
- version,build版本号不能低于上次上传过的APP版本号
- info.plist 中获取权限的key对应的value必须要加说明,不能为空
审核被拒-修改回复
Background-location
1 | 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: |
翻译:请修改您的应用程序,以包括功能,需要持续使用的实时位置更新,而应用程序的背景。请在应用程序描述中添加以下电池使用免责声明:“继续使用在后台运行的全球定位系统,可以大大降低电池寿命。”
如果你的应用程序不需要持续的实时位置更新,请清除“位置”从uibackgroundmodes键设置。如果你的应用程序功能不需要持久的实时位置更新,您可能希望使用显着的更改位置服务或区域监测位置服务。
Guideline 2.3.3 - Performance - Accurate Metadata
1 | We noticed that your screenshots for iPhone 5.8” do not sufficiently reflect your app in use on the relevant device. |
回复模板如下:1
2
3
4
5
6
7
8
9
10
11尊敬的苹果审核委员会, 你好。
谢谢你的耐心和认真审核, 我们认真排查了你提到的7个审核条款, 我们对此回应如下:
1.1.6:我们App并没有包含误导用户的功能和虚假信息,全都是真实的。
2.3.0:我们App没有在通过苹果审核后修改任何的概念和功能。
2.3.1:我们App没有切换到任何赌博或彩票的网站,我们是原生App。
3.1.1:我们App内需要使用第三方支付来XXX。
4.3.0:我们App内容都是我们自己开发的, 并不存在抄袭或者大量相似。
5.2.1:我们App并没有法人实体和版权的风险。
5.3.4:我们App需要在XXX、XXX等服务中访问用户的位置信息。
这是我们经过认真自查之后,得到的结论, 我们的App需要尽快上线,因为我们有大量推广活动在做。
希望苹果审核团队能继续审核,感谢。
Guideline 2.3.3 - Performance - Accurate Metadata
1 | We noticed that your screenshots for iPhone 5.8” do not sufficiently reflect your app in use on the relevant device. |
2.3 准确的元数据问题主要是应用标题、描述、截图等与应用功能严重不符
- 原因:虽然针对iPhone X上传的设计图尺寸大小符合规定,但在设计图内容中出现的手机屏幕样式不是iPhoneX的样式。
- 解决:让设计修改设计图内容中手机屏幕的样式,修改成iPhoneX带刘海的样式,或者5.8寸预览图属于可选而非必选,所以,如果没有新的是配图可以忽略5.8寸不上传。
Guideline 3.2.1 - Business - Other Business Model Issues - Acceptable
1 | The seller and company names associated with your app do not reflect the financial institute name in the app or its metadata, as required by Guideline 3.2.1(viii) of the App Store Review Guidelines. |
原因:
- APP名称跟公司名字差距较大,APP没有表现出APP与公司的关系。
- 开发者账号不是企业开发账号
- 开发者申请的邮箱不是公司名字的邮箱(比如自己的QQ号码邮箱)
- iTunes Connect中填写的技术支持网址不是跟公司有关的网址。
5.电商和金融理财类被拒的风险很大
解决:
- 提供APP是其公司合法App的相关文件,向苹果提供公司营业执照和软著之类证明。在itunes connect中,app描述里面加上: “app名字”属于你们公司的。
- 用公司帐号而非个人帐号提交应用。
- 确认开发账号申请邮箱是否是公司邮箱
- 技术支持是公司网站主页
- 提供金融资质证明。审核期间app内部不能出现任何第三方的名字,屏蔽敏感页面和敏感词等审核通过后再打开。
解决方案中心回复提交附件注意事项(重要)
- 上传的文件必须是png格式(直接修改后缀名不可以)
- 并且文件大小限制在5M内
- 上传文件的命名不要有汉字,要用字母
Guideline 3.2.2 - Business - Other Business Model Issues - Unacceptable
1 | The primary purpose of your app is to encourage users to watch ads or perform marketing-oriented tasks, which is not appropriate for the App Store. |
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
1 | We noticed that your app requests the user’s consent to access their camera but does not clarify the use of this feature in the permission modal alert. |
- 原因:相机使用场景提示文本不够明确,需提示用户为何打开此功能。
- 解决:info.plist文件中,对应key为NSCameraUsageDescription的value说明在哪些地方要用到定位服务,用户的位置信息,例如:”App会在XXX、XXX等服务中访问您的相机”。
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
1 | Specific issue: We noticed that your app requires users to register with personal information to access non-account-based features. |
- 原因:在没有进行与用户信息相关的操作时,却强行让用户登录,甚至不登录就无法看到任何内容。
- 解决:增加游客模式。
Guideline 5.1.5 - Legal - Privacy - Location Services
1 | Your app uses location services but does not clarify the purpose of its use in the location modal alert. Apps that collect, transmit, or use location data must notify and obtain the user’s consent prior to accessing this data. |
- 原因:定位使用场景提示文本不够明确,需提示用户为何打开此功能。
- 解决:info.plist文件中,对应key为NSLocationWhenInUseUsageDescription的value说明在哪些地方要用到定位服务,用户的位置信息,例如:”App会在XXX、XXX等服务中访问您的位置信息”。
iOS的各种结果文件:
(1)app
iOS编译以后生成的原始文件,实际是一个文件夹,里面包含各种资源文件(图片,第三方bundle,plist等文件),程序的可执行文件(二进制格式)以及对所有文件的签名记录(_CodeSignature)
不能上传AppStore
(2)dSYM
生成.app时的附属产物。本质是一个文件夹,其中只有一个最大的文件,作用是对iOS程序闪退后产生的log文件进行符号化(desymbolicate);通俗的说,就是把无意义的内存地址变成可读的程序中的类和方法以及代码行数
不能上传AppStore
(3)ipa
实际上就是把.app放到Payload文件夹后,对Payload进行了zip操作,最后改了下扩展名。
可通过Application Loader上传AppStore
(4)xcarchive
实际上也是一个文件夹,包含.ipa和.dSYM文件
可通过Xcode上传AppStore
获取APP在APP Store的最新版本号
1 | //版本更新方法实现 |