利用uni-app 开发的iOS app 发布到App Store全流程

简介: 利用uni-app 开发的iOS app 发布到App Store全流程

1.0.3 20200927


更新官方对应用审核流程的状态。


注:最新审核后续将同步社区另一篇记录 AppStore 审核被拒原因记录及解决措施

苹果开发上架常见问题 | appuploader使用教程


1.0.2 20200925

新增首次驳回拒绝邮件解决措施。


1.0.1 20200922

首次提交关于App Store上架步骤流程:

兼容检查 -> 账号申请 -> 证书申请 -> 发布准备 -> App Store上架 -> 审核后续

提交审核iOS审核团队联系方式;


本笔记用于记录了本人利用HBuilderX 开发项目到打包iOS app包后,上架App Store商店全过程步骤,希望对有需要的小伙伴给予些许帮助。


先后顺序因人而已,我这里主要是按照以下步骤:

兼容检查 -> 账号申请 -> 证书申请 -> 发布准备 -> App Store上架 -> 审核后续:

1、兼容检查:
  • 布局屏幕宽度适配(css样式:如字体大小、间距等)

如:

input中class样式
:class="iosPlus ? 'biaotiIOS' : 'biaoti'"
  • 插件兼容(如我个人应用涉及的word等文档预览、腾讯云验证码适配处理和人脸识别验证兼容等)
  • 官方API差异检查(如Native.js for iOS的一些API)
  • 好用的平台自动化测试工具,如IPA guard 测试服务
2、账号申请:

关于账号类型:

  • 因政策原因,公司没有以前容易申请,申请时间预计一周时间;(本人申请的是「个人账号」花了大概两天吧)
  • 公司和企业的账号申请需要邓白氏码,如果邓白氏码未申请,请先申请邓白氏码,这个过程需要一到两个星期。

注册申请

  1. 注册苹果账号apple id
  2. 开启双重认证,需在一台IOS手机/iPad操作
  3. 在App Store下载Apple Developer APP 进行注册开发者账号
  4. 去Apple Developer应用填写申请资料
  5. 绑定支付宝或者微信支付苹果年费(¥688元/年)
3、证书申请:
3.1 iOS证书(.p12)和描述文件(.mobileprovision)申请

详细步骤:

  1. 生成证书请求文件
  2. 申请开发(Development)证书和描述文件
  3. 申请发布(Production)证书和描述文件

申请步骤详见 iOS证书和描述文件申请

发布 (Production)证书用于正式发布环境下使用,用于提交到Appstore审核发布。发布证书打包的 ipa,不可以直接安装到手机上.

依据上述步骤最终会在本机得到以下文件:

其中红线部分为打包需要的文件,其它均为申请途中产生的辅助文件。

3.2 关于IOS的证书
  1. iOS开发证书:iOS开发证书是用于测试APP,在开发过程中安装到苹果手机真机测试APP的运行情况。
  2. iOS发布证书:当APP开发测试好后上线就需要用到iOS发布证书,用iOS发布证书打包的ipa才能上传到App Store审核。
  3. iOS推送证书:iOS推送证书是用于推送通知的,平时我们在手机的系统栏下拉看到的那些消息就是推送通知,如果要做这个功能就需要配置推送证书。
  4. iOS企业证书:可以免上架App Store无设备数量限制安装到手机使用。
4、发布准备

上架前的准备工作

上架前我们需大致了解下应用上架的流程、审核标准规范,得知应用应符合哪些前提条件、哪些底线规则绝不能触及等等,才能顺利的通过审核并在AppStore上架。

苹果应用审核采用人工审核和自动审核相结合的方式。大体分为三部分,预审、机审和人工审核。

4.1 熟悉上架流程

目前应用提审的整个流程大体分为五个阶段:Prepare For Upload(准备上传)、Waiting For Review(等待审核)、 In Review(审核)、Pending Developer Release(等待开发者发布)、Ready For Sale(准备销售)。

APP上传后,会进入到 Wait for Review 状态,而后进入到In Review状态,In Review一般2天左右就会审核通过或者是被打回。

  • .ipa包上传后首先进入的是预审,会被扫描API等,预审通过后会在iTC里出现,然后才可以提交至 Waiting;
  • 在 Waiting For Review(等待审核)阶段一般是机审,机审主要是对代码进行机器审核,排查APP是否重复应用,“2.1苹果狗年大礼包”事件就更多地依赖机器自动审核,减少人工成本;
  • 通过后会进入In Review(审核)阶段,即人工审核阶段,这个阶段主要看的是App的元数据,例如APP封面、功能、体验等等,注重用户体验。
4.2 阅读最新的应用审核标准 - 《App Store 审核指南》

被驳回是很正常的事情,但前提我们必须了解该审核规范内容,遵守相关要求,按规则调整问题。

图片来源:App Store 拒绝情况说明.

2020-09-212020-09-212020-09-222020-09-222020-09-232020-09-232020-09-242020-09-242020-09-252020-09-252020-09-262020-09-262020-09-272020-09-272020-09-28应用程式审查确保:确保各注意事项内容安全:隐私、数据安全等性能:应用完整性、硬件兼容性要求业务:清晰业务模式、明确订阅商业规则模式等设计:良好的页面交互设计、精致设计和符合相关编程指南法律:应用程序必须在您可以使用它们的任何位置都符合所有法律要求及时跟进和解决错误日志报告AppStore提交之前规则提交之后

4.3 熟知常见驳回的问题:
  1. 崩溃和错误(这个留给iOS审核团队来发现就过份了哈 )
  2. 链接断开:应用中的所有链接(包括提用描述提供的隐私链接)都必须正常加载
  3. 占位符内容:如非正式功能图片和文字等
  4. 申请许可:引用了敏感用户数据API,详见
  5. 屏幕截图不正确(详见 - 尺寸要求规范
可以利用XCode自带的iOS模拟器,直接在HBuildeX 工具里运行截图即可,比如我使用的是iPhone 11 Pro Max(13.6)对应6.5英寸显示屏(1242 × 2688 像素)

创建IOS模拟器

在HBuilderX里,点击顶部菜单栏 运行 - 运行手机或模拟器 - iOS模拟器

6. 信息不完整:需提供演示帐户用户名和密码等

7. 不合格的用户界面:应用需保持精致和用户友好的界面,符合iOS UI Design (行业标准规范 很赞同!🤔)

5、App Store上架
5.1 应用商店创建App
5.2 填写APP各项审核信息
  • 版本信息
  • 综合信息
  • ...

若「编辑年龄分级」为4+岁,根据苹果的最新规范不能使用IDFA

5.3 IOS 打包(生成.ipa文件)

到这一步,默认已经成功得到了 iOS证书(.p12)和描述文件(.mobileprovision)文件,否则请先完成 步骤3、!

  • 以HBuilderX 工具为例,打开待发布的项目 - 发行 - 原生App云打包

  • 打包成功后会在控制台输出得到下载链接:

  • 通过 Transporter App 上传App 的二进制文件(上述打包生成链接的.ipa文件)
5.4 上传.ipa包至App Store Connect 中

利用第三方IPA上传工具:appuploder工具

上传构建版本,可以查看交付进度(包括警告、错误和交付日志)以及交付历史

5.5 使用 TestFlight测试 Beta 版 App
  • 在用于测试的 iOS 设备上安装 TestFlight;
  • 在 App Store Connect 中的TestFight 构建beta版本:
  • 在内部群组 - 新建测试员:
  • 点击邀请后,该成员邮箱将会收到一个兑换码:
  • 随后就可以在TestFlight 里打开该构建版本

关于 TestFlight:

1. 每个构建版本有最多 90 天的时间可供测试;
2. 如果在测试设备上安装该 App 的 App Store 版本,则该版本将被其 Beta 版本替换;
3. Beta 版 App 下载完成后,其名称旁边会出现一个表示其为 Beta 版本的橙色圆点。
5.6 提交审核!

审核有时很快一两天,或要几天时间,需及时查看看邮件。

如果变成可供销售,那么恭喜你已成功在App Store里上架!

6、审核后续

被驳回拒绝也是意料之中的事情,提交审核后的第二天(早上6点多)便收到了 App Store Review 的邮件。

6.0 我的被拒经历 🤨

第一封邮件:

2020年9月25日 06:48

2020年9月25日 上午6:48
发件人 Apple
Other - Other
Hello,
 
The review of your app is taking longer than expected. Once we have completed our review, we will notify you via Resolution Center.
 
If you would like to inquire about the status of this review, you may file a request via the Apple Developer Contact Us page.
 
Best regards,
 
App Store Review


翻译:

意思是这次评论时间会很长,等评论完成之后,会通知我们。


分析:

查阅相关资料,该邮件内容可理解为是对开发者账号的一种审查策略。邮件的标题为:Other - Other, 据说是一种全新的拒绝理由!🤔🤔


广大网友的猜测:

  • 苹果审核机制变了;
  • 苹果要审查你的账号了;
  • 苹果最近太忙了,知道要延迟审核,先给你的拒绝放在那,等轮到你了再说。
  • 考虑到最近的特殊大环境,有可能是ZF原因。

解决措施:


🎉 1. 等着!邮件已经说明了只需要等待对方答复。


🎉 2. 如果着急的话,就按照提示选择 Contact Us,提交申诉。

即 点击邮件的 " Apple Developer Contact Us" --> App审核 --> 选择 "App 审核状态" / "App 被拒澄清" 均可。

(此时苹果应会自动回复了一封邮件,大概一到两天内才会给予正式答复邮件)


我的回复内容:


Dear AppStore review team, hello.
I received an email about my app review rejection, the content is probably ``'The review of your app is taking longer than expected...' This is my first time submitting an app in the AppStore, I am very excited and happy ! 😃😃 If it is found that there are any abnormal problems in the submitted application, I think I will be happy to actively cooperate with the rectification, and look forward to your reply. Good luck!


大概就是说 我收到了被拒邮件,并表示非常乐意配合整改,期待正式回信。


总之态度很诚恳,愿意积极配合。🌝🌝

总体大致流程:

收到Other-Other被拒 ——> 根据邮件提示询问审核状态 ——> 约2天收到官方回复(提及会将你的请求转达给内部其他团队)——> 再过2天收到完成账号调查邮件+in review邮件 ——> 可能收到关于需调整的问题,再次被拒 ——> 修改代码重新提交 ——> in review、通过审核!🎉🎉🎉


目录
相关文章
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
1月前
|
移动开发 监控 小程序
TP6+Uni-app框架开发,2025年最新圈子系统功能展示,圈子app流量主模式
圈子系统基于TP6+Uni-app框架开发,支持多端账号同步并可快速生成APP。它适用于行业、地方、社交、游戏、兴趣等多种圈子场景,提供广告展示、商品销售、推广结算、交易佣金、入驻费用、会员增值及线上线下活动等多元盈利模式,帮助商户精准定位用户,实现流量变现和业务增长。
|
1月前
|
安全 数据安全/隐私保护 Android开发
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
235 75
|
2月前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
90 11
|
3月前
|
传感器 iOS开发 UED
探索iOS生态系统:从App Store优化到用户体验提升
本文旨在深入探讨iOS生态系统的多个方面,特别是如何通过App Store优化(ASO)和改进用户体验来提升应用的市场表现。不同于常规摘要仅概述文章内容的方式,我们将直接进入主题,首先介绍ASO的重要性及其对开发者的意义;接着分析当前iOS平台上用户行为的变化趋势以及这些变化如何影响应用程序的设计思路;最后提出几点实用建议帮助开发者更好地适应市场环境,增强自身竞争力。
|
3月前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!
|
6月前
|
Android开发 iOS开发 C#
Xamarin:用C#打造跨平台移动应用的终极利器——从零开始构建你的第一个iOS与Android通用App,体验前所未有的高效与便捷开发之旅
【8月更文挑战第31天】Xamarin 是一个强大的框架,允许开发者使用单一的 C# 代码库构建高性能的原生移动应用,支持 iOS、Android 和 Windows 平台。作为微软的一部分,Xamarin 充分利用了 .NET 框架的强大功能,提供了丰富的 API 和工具集,简化了跨平台移动应用开发。本文通过一个简单的示例应用介绍了如何使用 Xamarin.Forms 快速创建跨平台应用,包括设置开发环境、定义用户界面和实现按钮点击事件处理逻辑。这个示例展示了 Xamarin.Forms 的基本功能,帮助开发者提高开发效率并实现一致的用户体验。
229 0
|
6月前
|
iOS开发
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
314 0
App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法
|
6月前
|
iOS开发
解决IOS上架App Store后显示语言为英文的问题
解决IOS上架App Store后显示语言为英文的问题
135 0

热门文章

最新文章

  • 1
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 2
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
  • 3
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 4
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
  • 5
    【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
  • 6
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 8
    【Azure Function】Function App出现System.IO.FileNotFoundException异常
  • 9
    【Azure Logic App】使用MySQL 新增行触发器遇见错误 :“Unknown column 'created_at' in 'order clause'”
  • 10
    阿里云APP备案流程图以及备案所需材料整理,跟着教程一步步操作
  • 1
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    34
  • 2
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 3
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 4
    【Azure Function】Function App门户上的Test/Run返回错误:Failed to fetch
    31
  • 5
    陪玩APP推送配置:陪玩系统手机锁屏收不到推送?可能是这些原因!解决方案来了!
    34
  • 6
    小游戏源码开发之可跨app软件对接是如何设计和开发的
    33
  • 7
    原生鸿蒙版小艺APP接入DeepSeek-R1,为HarmonyOS应用开发注入新活力
    134
  • 8
    PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
    60
  • 9
    语音app系统软件源码开发搭建新手启蒙篇
    44
  • 10
    MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
    881