创建APP身份证(App IDs)

1.首先打开开发者中心https://developer.apple.com/cn/,点击右上角Account, 进入证书页面,点击Certificates, Identifiers & Profiles进入设置

ios我的个人中心 appstore的个人中心在哪里_上传


2.选择App IDs –>点击+创建一个新的App ID

ios我的个人中心 appstore的个人中心在哪里_发布证书_02


其中有两项需要你自己填:

第一项Name,用来描述你的App ID,这个随便填,没有什么限制,最好是项目名称,这样方便自己辨识(不允许中文)

第二项Bundle ID (App ID Suffix),这是你App ID的后缀,需要仔细填写。用来标示我们的 app,使它有一个固定的身份,填写 的格式为:com.company.appName,一定照着格式写,写个方便记的,后面很多地方要用到。

ios我的个人中心 appstore的个人中心在哪里_上传_03


第三项App Services,默认会选择2项,不能修改,其它根据自己需要的服务选择上(随身办需要选择推送服务), 然后点击Continue确认,下一步。

申请IOS发布(生产)证书

首先准备好你的苹果电脑的CSR文件:在钥匙串访问下拉菜单中选证书助理 - > 从证书颁发机构请求证书。

ios我的个人中心 appstore的个人中心在哪里_上传_04


点击“从证书颁发机构请求证书…”后,弹出下图,按图操作后(图中的用户电子邮件地址填开发者账号的邮件地址),点击继续按钮

ios我的个人中心 appstore的个人中心在哪里_发布证书_05


据下图中提示完成操作后点击存储按钮,并在自己的存储位置找到CSR文件。

ios我的个人中心 appstore的个人中心在哪里_发布证书_06

申请生产,发布证书(含推送证书)

进入苹果开发者后台点击右上角“账户”或"Account"按钮,登录你的苹果开发者账号后,选择"Certificates, IDs & Profiles",如下图中红框中的任意一个。

ios我的个人中心 appstore的个人中心在哪里_上传_07


ios我的个人中心 appstore的个人中心在哪里_上传_08


ios我的个人中心 appstore的个人中心在哪里_上传_09


ios我的个人中心 appstore的个人中心在哪里_ios我的个人中心_10


到这里生产、发布证书(也叫生产证书或分发证书)就申请完成了,点击Download按钮下载后,点击Done。

生产、发布证书有申请个数限定(开发证书也一样),超过即不可申请,发布证书最多可申请2个。生产、发布证书可以和多个App ID关联,也就是说可以多个app共用一个发布证书,一般情况下发布证书申请一个就可以了。

注意:只有在当前电脑中生成本地生成证书,上传到苹果开发账号,然后下载cer文件运行后,钥匙串中才有证书以及对应的秘钥

如果开发者B,登录开发者账号,下载证书(cer文件)运行,只有证书没有秘钥,是不能正常使用的

ios我的个人中心 appstore的个人中心在哪里_IOS上架_11


所以如果当其他同事需要用到相同的开发证书的时候,应该从本地钥匙串中选择证书,导出p12文件(包含证书和秘钥)给同事。另外可以给同事一份Provisioning Profiles文件(配置文件),用于本地开发识别测试设备

导出p12文件:钥匙串——选择证书——右键导出——存储为——设置p12文件密码

(发给同事后,双击p12文件,输入密码,本地安装证书成功,随身办的发布证书密码为123456)

需要强调一点,证书和项目关系其实并不大,证书一般有效期只有一年,当证书过期后,只需要重新生成一份证书,上传到开发者账号就行,同时因为原有证

书过期,需要重新生成Provisioning Profiles文件。然后给同事们最新的p12文件和Provisioning

Profiles文件就行

(Provisioning Profiles,这个东西是很有苹果特色的一个东西,一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿)

申请推送证书

如果在创建appid时勾选了推送服务,那就需要申请推送证书

推送证书的申请流程和发布证书申请流程一样.

ios我的个人中心 appstore的个人中心在哪里_发布证书_12


推送证书申请成功后,需要到极光推送后台里面设置

将推送证书上传到极光推送后台

ios我的个人中心 appstore的个人中心在哪里_上传_13

申请iOS发布描述文件(也叫配置文件或描述文件)

  1. 创建授权文件

如果是要进行发布证书下的个人真机测试,选择Ad Hoc

选择Ad Hoc前, 需要到Devices中添加测试设备的设别号

ios我的个人中心 appstore的个人中心在哪里_ios我的个人中心_14

点击继续后在新的页面中点击Download下载授权文件即可。
到这里应用打包上线所需要的证书就创建完毕了。

②导出生产、发布证书,一般来说证书导出的话可以方便传阅和使用,注意:描述文件不需要导出,下载后可以直接使用。

第一步,先双击生产发布证书

ios我的个人中心 appstore的个人中心在哪里_App_15


第二步,在苹果电脑的钥匙串上导出证书,点击右键选择导出即可

ios我的个人中心 appstore的个人中心在哪里_IOS上架_16


ios我的个人中心 appstore的个人中心在哪里_发布证书_17

通过xcode构建ipa并测试上架

打开xcodeproj工程,配置下面参数

ios我的个人中心 appstore的个人中心在哪里_ios我的个人中心_18


ios我的个人中心 appstore的个人中心在哪里_上传_19


ios我的个人中心 appstore的个人中心在哪里_IOS上架_20


ios我的个人中心 appstore的个人中心在哪里_发布证书_21


ios我的个人中心 appstore的个人中心在哪里_IOS上架_22


ios我的个人中心 appstore的个人中心在哪里_IOS上架_23

ios我的个人中心 appstore的个人中心在哪里_App_24


如果想直接测试某个历史版本

ios我的个人中心 appstore的个人中心在哪里_IOS上架_25


ios我的个人中心 appstore的个人中心在哪里_App_26


即可查看历史的构建版本

ios我的个人中心 appstore的个人中心在哪里_发布证书_27


ios我的个人中心 appstore的个人中心在哪里_上传_28


ios我的个人中心 appstore的个人中心在哪里_上传_29


导出后,将ipa从虚拟机传到开发电脑,然后苹果手机连上开发电脑进行安装

ios我的个人中心 appstore的个人中心在哪里_App_30


ios我的个人中心 appstore的个人中心在哪里_IOS上架_31

iTunes Connect创建APP

1.登录iTunes Connect,点击我的APP进入创建一个APP

登录地址:https://itunesconnect.apple.com/login 2. 进入点击左上角+号选择新建APP,选择平台iOS,

然后填写审核的基本信息

选择上传成功的一个构建版本,

ios我的个人中心 appstore的个人中心在哪里_上传_32


ios我的个人中心 appstore的个人中心在哪里_发布证书_33

发布过程中的问题以及解决方法

ios我的个人中心 appstore的个人中心在哪里_上传_34


第一个问题是指app store的图标不能透明,也不能含有alpha通道

解决方法:请设计的同事处理一下图标

第二个问题是说sdk的版本太低,需要用到ios12.1的sdk,该sdk包含在xcode10.1及以上版本里面
解决方法:首先查看当前系统的xcode版本,如果不是10.1或者10.1以上的版本,需要升级.查看我们系统是否支持升级到满足条件的xcode版本,由于我们用的是虚机启动的mac系统,需要重新安装一个满足条件的系统版本,再重新配置环境.

ios我的个人中心 appstore的个人中心在哪里_上传_35


上图表示上传到app store的网络出错

解决思路: 之前用公司的网络上传了几次均失败,后面用了实验室的网络国内网,上传成功了,大概15-30分钟.后面发现用公司的网络有时也能成功,上传时间40-60分钟.也发现用实验室的网络也有失败的时候.为了提高效率和成功率,还是用实验室网络上传较好,失败了再重新上传.

ios我的个人中心 appstore的个人中心在哪里_发布证书_36


上图表示ios的证书无效和ios的描述文件无效

解决方法:以发布环境为例,ios的发布描述文件是要根据发布证书生成的,所以先看发布证书有没有问题,进入钥匙串访问

ios我的个人中心 appstore的个人中心在哪里_IOS上架_37


查看发布证书的状态,一般引起此问题有可能是以下几个:

1.发布证书过期(重新申请证书,步骤很前面申请发布证书一致,同时也要生成新的描述文件)

2.发布证书没有安装成功(重新安装)

3.在开发者平台上证书被移除掉了(重新申请)

ios我的个人中心 appstore的个人中心在哪里_IOS上架_38


上传app store显示成功,但是查不到构建版本,邮箱中收到修改信息.

ios我的个人中心 appstore的个人中心在哪里_App_39


大致意思:您的应用程序代码引用一个或多个访问敏感用户数据的API。该应用程序的Info.plist文件应包含对每个api都提供一个字符串, 清楚而完整地解释了您的应用程序需要使用该api的原因,从2019年的春季起,提交给app store的所有app都需要,即使我们不使用这些api。解决方法:

我们需要在info.plist.file(app应用的配置文件)添加对应api以及使用描述

ios我的个人中心 appstore的个人中心在哪里_ios我的个人中心_40


常见功能有以下几点:

Privacy - Media Library Usage Description //获取用户媒体库说明

Privacy - Bluetooth Peripheral Usage Description //蓝牙外设使用描述

Privacy - Calendars Usage Description //日历的使用说明

Privacy - Camera Usage Description //相机使用叙述说明

Privacy - Contacts Usage Description //联系人使用说明

Privacy - Health Share Usage Description //健康分享使用描述

Privacy - Location Always Usage Description //后台定位(在iOS设置中为’永久’)

Privacy - Location Usage Description //需要定位

Privacy - Location When In Use Usage Description //前台定位(在iOS设置中为’使用期间’)

Privacy - Health Update Usage Description //健康更新使用描述

Privacy - HomeKit Usage Description //HomeKit使用描述

Privacy - Microphone Usage Description //麦克风的使用说明

Privacy - Motion Usage Description //运动使用的描述

Privacy - Photo Library Usage Description //照片库使用说明

Privacy - Reminders Usage Description //提醒使用描述

Privacy - TV Provider Usage Description //电视提供商使用的描述 (貌似国内用不到)

iOS11新增
Privacy - NFC Reader Usage Description //NFC使用描述
Privacy - Face ID Usage Descriptio //使用Face ID
Privacy - Photo Library Additions Usage Description // 保存图片到图库中 (重要)

问题: App闪退

解决: 本项目中是因为backgroundMode创建有个bug

ios我的个人中心 appstore的个人中心在哪里_发布证书_41


问题: ionic中引用了nfc的插件,ionic编译后对应的app store上的appid自动勾选上nfc功能

影响:如果对应的appid中包含了nfc功能,上架时需要说明什么地方用到了nfc,有时还需要提供演示视频给app store审核团队

其他

1.mac的root账户默认是关闭的,启用步骤:

1.选取“系统偏好设置”。
2.选择“用户与群组”。
3.点击左下方“登录选项”。
4.点击登录选项下方的索按钮,然后会让你输密码。
5.输入密码正确以后,锁会由原来的关闭状态变为打开状态。
6.点击“网络账户服务器”右边的“加入”
7.在后面弹出的对话框中选择“打开目录实用工具”。
8.此时又会蹦出一个对话框页面,同样点击左下角的锁按钮,然后输入密码。
9.输入正确以后,锁按钮也会变为打开状态。
10.点击编辑菜单,选择里面的启用root账户,然后设置root密码,即可。

2.分析app store返回的奔溃日志

参考资料: https://www.jianshu.com/p/1fcd8268aded

利用symbolicatecrash脚本符号化

1 桌面新建文件夹 Crash

2.将下列内容放到crash中

a. 项目名称.app.dSYM:文件存放 【 路径:Xcode -> Window -> Organizer ->Archives -> 你上传的版本 右键 Show In Finder -> 右键 显示包内容 -> dSYMS]

b. 崩溃日志文件:a.crash b.crash 【 路径:示例_02 从苹果被拒列表中下载 更改后缀为.crash】

c. 项目名称app : 【路径:点击1中dSYN文件 ->右键显示包内容->Contents -> Resources -> DWARF -> 项目名称 】

d. symbolicatecrash:

终端操作 :$ find /Applications/Xcode.app -name symbolicatecrash -type f 【路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/DVTFoundation.framework/symbolicatecrash 】

如图所示

ios我的个人中心 appstore的个人中心在哪里_App_42


3. 符号化

$ cd : Crash文件夹

$ export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

$ symbolicatecrash a.crash 项目名称.app > a.txt打开txt文件,查看

ios我的个人中心 appstore的个人中心在哪里_IOS上架_43