当前位置: 首页 >  电商服务 >  iOS开发之进阶篇(1)—— 证书、打包上架流程、p12文件

iOS开发之进阶篇(1)—— 证书、打包上架流程、p12文件

导读:iOS开发相关的证书有很多种,iOS开发证书(iOS App Development)、iOS发布证书(iOS Distribution (App.Store and Ad Hoc))、网站推送ID证书(Website Push ID Certificate)、Apple Pay

iOS开发相关的证书有很多种,iOS开发证书(iOS App Development)、iOS发布证书(iOS Distribution (App Store and Ad Hoc))、网站推送ID证书(Website Push ID Certificate)、Apple Pay付款处理证书(Apple Pay Payment Processing Certificate)等等。Xcode 11以后,又新增了Apple Development和Apple Distribution,前者是iOS/macOS/tvOS/watchOS各平台开发证书的结合,后者是这些平台的发布证书结合。

种类繁多,我们挑选一般的App从开发到上架App Store所必备的证书。

以Xcode 11版本以后的开发环境为例,其实只要具备两个证书就够了:苹果开发证书(Apple Development)、苹果发布证书(Apple Distribution)。

Apple Development

苹果开发证书,包括 iOS / macOS / tvOS / watchOS 各平台的开发证书。

当我们进行真机调试的时候,就需要安装这个证书。证书是安装在Mac电脑的“钥匙串访问”里面的,只要安装一次即可,并不是每创建一个工程就都要安装一次证书。

要进行真机调试,我们一般需要以下步骤:

生成证书申请文件

打开Mac的钥匙串访问App

证书助理=》从证书颁发机构请求证书

填写相关信息

选择存储到本地(比如桌面),因为我们后面生成证书的时候会用到这个文件。

生成开发证书

登录Apple developer, 选择证书,添加之。

选择App Developer,continue

然后点击Choose File,上传我们刚才生成的申请文件(.certSigningRequest)。continue

直至生成了开发证书显式于列表中(不同电脑会生成不同的开发证书):

安装开发证书

点击你刚生成的证书,下载之。

双击安装之。

然后我们就可以在钥匙串访问的App里面的我的证书里看到安装成功了

愉快地进行真机开发调试

Apple Distribution

苹果发布(分布)证书,包括 iOS / macOS / tvOS / watchOS 各平台的发布证书,可用于发布商店版(App Store) 和 内测版(Ad Hoc)。

发布App,一般需要以下步骤:

生成证书申请文件,这个申请文件在前面的开发证书已经生成了,可以继续使用。

生成发布证书

同样,登录Apple developer,新建一个证书,然后选择Apple Distribution。

一个账号最多只能生成三个发布证书,我这个账号已经申请满了,所以是灰色不可选。

上传的时候选择一个发布证书就行了,证书有效期是一年,到期后App Store上的现有App将不受影响。但是,不能使用过期或已撤销证书来更新App,可生成新的证书继续更新App。

后面和申请开发证书一样,Choose File上传申请文件然后下一步直至生成发布证书:

3. 安装发布证书

下载之。

钥匙串访问里查看:

4. 愉快地发布App

App打包上架流程

App Store部分

php 从数据库提取二进制图片的处理代码

pdf

0星

超过10%的资源

28KB

下载

因为我们要上传安装包到App Store,所以得先App Store Connect里面创建一个App,而创建App是基于套装ID来创建的。所以我们第一步是创建套装ID。

创建套装ID

进入开发者网站里的证书设置

创建App ID

填写信息,Bundle ID与工程中的Bundle Identifier一致。

创建成功如下:

接着,创建描述文件Profiles,此描述文件即对应App Store Connect里的套装ID。

选择App ID,选择发布证书等等创建好。

然后到App Store Connect里创建App

填写信息

套装ID选择刚才在证书配置里面创建好的App。

至此创建App完毕。接下来在Xcode打包上传。

Xcode部分

首先我们看看TARGETS的Architecture配置

在Build Active Architecture Only选项里,Debug选择Yes表示调试的时候只编译生成当前机型对应的架构,这样使得编译调试的时候更快;Release选择No表示发布时编译Valid Architectures中的所有架构,如果不编译某个架构,那么这个架构对应的机型将无法安装这个安装包。

各机型的处理器对应架构

模拟器32位处理器 – i386

模拟器64位处理器 – x86_64

真机32位处理器 – armv7、armv7s(armv7兼容armv7s)

真机64位处理器 – arm64架构

具体机型对比

armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)

armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2

armv7s: iPhone 5、iPhone 5c (armv7兼容armv7s)

arm64(无armv64): iPhone 5s之后机型

现在来说,我们只需要支持armv7和arm64这两个架构就可以了。

这里顺便提一下,如果我们使用的第三方库不支持某些框架的话,那么我们是无法使用到所缺失框架对应的机型上的。比如说,我们某些库不支持 i386/x86_64 框架,那么我们将无法使用模拟器来运行代码。

接着我们的打包上架流程。

图太多了,就挑几个主要流程吧。。。

至于App信息填写审核等步骤这里就不讨论了。。。

.p12文件

前面说过发布证书一个开发者账号最多只能创建三个。而且这个证书是和电脑绑定的,也就是说,A电脑创建的证书不能用在B电脑上。那么问题来了,从A电脑拷贝一个工程到B电脑,B电脑倒是可以自己创建开发证书来调试这个工程,可如果发布证书满了不能再创建,这时候就发布不了了。

如果想在B电脑上也能发布App,那么就需要从A电脑导出发布证书(里面含有私钥):

起名,加密等

导出的文件即为p12后缀的文件,然后放到B电脑中安装,即可在钥匙串中生成发布证书(包含私钥),就可以用于发布App了。

内容
  • 计算机网络概念汇总
    计算机网络概念汇总
    2023-12-05
    1. 模型结构.五层模型 :.应用层、传输层、网络层、数据链路层、物理层。.应用层 :为应用程序提供交互服务。在互联网中
  • UE开发使用Rider时缓存干爆C盘的解决方案
    UE开发使用Rider时缓存干爆
    2023-12-03
    我们在使用Rider开发UE时,Ride会为每一个项目创建一个解决方案缓存,如果开几个新项目写测试demo,我们的C盘会
  • Unity3D 横板跳跃游戏半成品demo源代码
    Unity3D 横板跳跃游戏半成
    2023-12-08
    项目介绍:.基于B站的 Unity3D新手教程 进行学习制作,但视频中的做法有很多BUG,此demo是经过优化,几乎修复
  • 数据分析师如何用SQL解决业务问题?
    数据分析师如何用SQL解决业务问
    2023-12-03
    本文来自问答。.提问:数据分析人员需要掌握sql到什么程度?.请问做一名数据分析人员,在sql方面需要掌握到什么程度呢?
  • Unity 中的存档系统(本地存档)
    Unity 中的存档系统(本地存
    2023-12-09
    思想.在游戏过程中,玩家的背包、登录、人物系统都与数据息息相关,无论是一开始就设定好的默认数据,还是可以动态存取的数据,
  • unity 实现自定义class深度拷贝 deep copy 深度复制 引用类型复制
    unity 实现自定义class
    2023-12-09
    气死我了,搜半天没有,全让序列化再反序列化,又不方便又不美观。结果自己试着一写就通,两行完事。.首先先安装Newtons