1.首先打开开发者中心https://developer.apple.com/cn/,点击右上角Account, 进入证书页面,点击Certificates, Identifiers & Profiles进入设置
2.选择App IDs –>点击+创建一个新的App ID
其中有两项需要你自己填:
第一项Name,用来描述你的App ID,这个随便填,没有什么限制,最好是项目名称,这样方便自己辨识(不允许中文)
第二项Bundle ID (App ID Suffix),这是你App ID的后缀,需要仔细填写。用来标示我们的 app,使它有一个固定的身份,填写 的格式为:com.company.appName,一定照着格式写,写个方便记的,后面很多地方要用到。
第三项App Services,默认会选择2项,不能修改,其它根据自己需要的服务选择上(随身办需要选择推送服务), 然后点击Continue确认,下一步。
首先准备好你的苹果电脑的CSR文件:在钥匙串访问下拉菜单中选证书助理 - > 从证书颁发机构请求证书。
点击“从证书颁发机构请求证书…”后,弹出下图,按图操作后(图中的用户电子邮件地址填开发者账号的邮件地址),点击继续按钮
据下图中提示完成操作后点击存储按钮,并在自己的存储位置找到CSR文件。
申请生产,发布证书(含推送证书)
进入苹果开发者后台点击右上角“账户”或"Account"按钮,登录你的苹果开发者账号后,选择"Certificates, IDs & Profiles",如下图中红框中的任意一个。
到这里生产、发布证书(也叫生产证书或分发证书)就申请完成了,点击Download按钮下载后,点击Done。
生产、发布证书有申请个数限定(开发证书也一样),超过即不可申请,发布证书最多可申请2个。
生产、发布证书可以和多个App ID关联,也就是说可以多个app共用一个发布证书,一般情况下发布证书申请一个就可以了。
注意:只有在当前电脑中生成本地生成证书,上传到苹果开发账号,然后下载cer文件运行后,钥匙串中才有证书以及对应的秘钥
如果开发者B,登录开发者账号,下载证书(cer文件)运行,只有证书没有秘钥,是不能正常使用的
所以如果当其他同事需要用到相同的开发证书的时候,应该从本地钥匙串中选择证书,导出p12文件(包含证书和秘钥)给同事。另外可以给同事一份Provisioning Profiles文件(配置文件),用于本地开发识别测试设备
导出p12文件:钥匙串——选择证书——右键导出——存储为——设置p12文件密码
(发给同事后,双击p12文件,输入密码,本地安装证书成功,随身办的发布证书密码为123456)
需要强调一点,证书和项目关系其实并不大,证书一般有效期只有一年,当证书过期后,只需要重新生成一份证书,上传到开发者账号就行,同时因为原有证
书过期,需要重新生成Provisioning Profiles文件。然后给同事们最新的p12文件和Provisioning
Profiles文件就行
(Provisioning Profiles,这个东西是很有苹果特色的一个东西,一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿)
如果在创建appid时勾选了推送服务,那就需要申请推送证书
推送证书的申请流程和发布证书申请流程一样.
推送证书申请成功后,需要到极光推送后台里面设置
将推送证书上传到极光推送后台
如果是要进行发布证书下的个人真机测试,选择Ad Hoc
选择Ad Hoc前, 需要到Devices中添加测试设备的设别号
点击继续后在新的页面中点击Download下载授权文件即可。
到这里应用打包上线所需要的证书就创建完毕了。
②导出生产、发布证书,一般来说证书导出的话可以方便传阅和使用,注意:描述文件不需要导出,下载后可以直接使用。
第一步,先双击生产发布证书
第二步,在苹果电脑的钥匙串上导出证书,点击右键选择导出即可
打开xcodeproj工程,配置下面参数
如果想直接测试某个历史版本
即可查看历史的构建版本
导出后,将ipa从虚拟机传到开发电脑,然后苹果手机连上开发电脑进行安装
1.登录iTunes Connect,点击我的APP进入创建一个APP
登录地址:https://itunesconnect.apple.com/login
2. 进入点击左上角+号选择新建APP,选择平台iOS,
然后填写审核的基本信息
选择上传成功的一个构建版本,
第一个问题是指app store的图标不能透明,也不能含有alpha通道
解决方法:请设计的同事处理一下图标
第二个问题是说sdk的版本太低,需要用到ios12.1的sdk,该sdk包含在xcode10.1及以上版本里面
解决方法:首先查看当前系统的xcode版本,如果不是10.1或者10.1以上的版本,需要升级.查看我们系统是否支持升级到满足条件的xcode版本,由于我们用的是虚机启动的mac系统,需要重新安装一个满足条件的系统版本,再重新配置环境.
上图表示上传到app store的网络出错
解决思路: 之前用公司的网络上传了几次均失败,后面用了实验室的网络国内网,上传成功了,大概15-30分钟.后面发现用公司的网络有时也能成功,上传时间40-60分钟.也发现用实验室的网络也有失败的时候.为了提高效率和成功率,还是用实验室网络上传较好,失败了再重新上传.
上图表示ios的证书无效和ios的描述文件无效
解决方法:以发布环境为例,ios的发布描述文件是要根据发布证书生成的,所以先看发布证书有没有问题,进入钥匙串访问
查看发布证书的状态,一般引起此问题有可能是以下几个:
1.发布证书过期(重新申请证书,步骤很前面申请发布证书一致,同时也要生成新的描述文件)
2.发布证书没有安装成功(重新安装)
3.在开发者平台上证书被移除掉了(重新申请)
上传app store显示成功,但是查不到构建版本,邮箱中收到修改信息.
大致意思:您的应用程序代码引用一个或多个访问敏感用户数据的API。该应用程序的Info.plist文件应包含对每个api都提供一个字符串, 清楚而完整地解释了您的应用程序需要使用该api的原因,从2019年的春季起,提交给app store的所有app都需要,即使我们不使用这些api。
解决方法:
我们需要在info.plist.file(app应用的配置文件)添加对应api以及使用描述
常见功能有以下几点:
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
问题: ionic中引用了nfc的插件,ionic编译后对应的app store上的appid自动勾选上nfc功能
影响:如果对应的appid中包含了nfc功能,上架时需要说明什么地方用到了nfc,有时还需要提供演示视频给app store审核团队
1.选取“系统偏好设置”。
2.选择“用户与群组”。
3.点击左下方“登录选项”。
4.点击登录选项下方的索按钮,然后会让你输密码。
5.输入密码正确以后,锁会由原来的关闭状态变为打开状态。
6.点击“网络账户服务器”右边的“加入”
7.在后面弹出的对话框中选择“打开目录实用工具”。
8.此时又会蹦出一个对话框页面,同样点击左下角的锁按钮,然后输入密码。
9.输入正确以后,锁按钮也会变为打开状态。
10.点击编辑菜单,选择里面的启用root账户,然后设置root密码,即可。
参考资料: 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 】
如图所示
3. 符号化
$ cd : Crash文件夹
$ export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
$ symbolicatecrash a.crash 项目名称.app > a.txt