IOS Xcode证书配置和ipa打包流程(附图文教程)
前言
在你最初接触IOS APP开发的时候,你是否有个焦虑,在IOS APP开发完成后如何打包给测试人员使用或者提交到Apple Store呢?
最近笔者刚好也在接触IOS APP的开发以及发布,由于网上搜索到的文章很多是几年前的,而且资料也不全,所以只好自己摸索,一步一步操作到最后的成功上线,因此想把这个过程记录,以便不时之需。
如果你也是刚接触这块内容,不熟悉用Xcode如何生成证书文件、profile描述文件配置、ipa打包提测等,让我们带着这些困惑,本文章将用Xcode生成证书、配置描述文件和ipa打包做个总结,你将会看到具体的图文教程,另外,我也会将我遇到的问题以及解决办法也会放在文章中。通过这篇文章,希望你能少走弯路快速上手。
下面,让我们进入正题!
ipa文件简介
ipa是IOS应用程序iPhoneApplication的缩写,简单来说,ipa文件本质上是一个zip压缩包,跟安卓apk文件性质是一样的,Xcode打包完成后的扩展名为 .ipa。
证书文件简介
苹果APP的证书文件是用于验证应用程序的身份和授权的文件。在开发和发布iOS应用程序时,需要使用苹果的证书文件来进行代码签名和身份验证,以确保应用程序的安全性和可靠性。
- 代码签名:使用证书文件对应用程序进行签名,以确保应用程序的完整性和真实性,防止应用程序被篡改或者恶意攻击。
- 授权:使用证书文件授权应用程序在特定设备上运行,以确保应用程序的合法性和授权性。
- 发布:使用证书文件发布应用程序到App Store或者企业内部分发平台,以确保应用程序的合法性和可靠性。
Provisioning Profile描述文件简介
用于授权iOS设备和应用程序的文件。在开发和发布iOS应用程序时,需要使用Provisioning Profile文件来授权应用程序在特定设备上运行,以确保应用程序的合法性和授权性。
- 授权设备:使用Provisioning Profile文件授权特定设备运行应用程序,以确保应用程序的合法性和授权性。
- 授权应用程序:使用Provisioning Profile文件授权应用程序在特定设备上运行,以确保应用程序的合法性和授权性。
- 代码签名:使用Provisioning Profile文件对应用程序进行代码签名,以确保应用程序的完整性和真实性,防止应用程序被篡改或者恶意攻击。
当前环境版本
笔者当前使用的环境如下:
电脑:MacBook Pro 2019 款
系统版本:macOS Sonoma 14.4.1
Xcode 版本:15.3
Xcode证书配置和ipa打包流程
简单来说,分以下几步:
- 在苹果开发者后台创建 Identifiers 、 Certificates 和 Profiles。
- 在Xcode中,打开Targets -> Signing & Capabilities,配置证书和描述文件。
- 在Xcode中,执行Product -> Archive,打包构建。
- 点击Distribute App,选择App Store Connect,继续点击Distribute。
- 等待Xcode编译打包和上传完成,生成ipa文件。
- 在App Store Connect,进行发布审核,或者使用TestFlight进行内测。
创建Identifiers、Certificates 和 Profiles
- 创建Identifiers
进入 “Certificates, Identifiers & Profiles” 页面。点击"Identifiers"。
- 点击 “Identifiers” 部分下的 “App IDs”,然后点击 “+” 按钮来创建一个新的 App ID。
- 填写 App ID 的描述(如应用名称),并选择 “Explicit App ID”(如果你的应用需要使用特定的服务,如推送通知、内购等)或
“Wildcard App ID”(用于多个相关应用共享一个 ID,但有一些功能限制)。 - 对于 “Explicit App ID”,需要填写一个唯一的 Bundle ID,这个 Bundle ID 通常是一个反向域名格式(如 com.example.myapp),并且在整个 App Store 中是唯一的。它用于区分你的应用和其他应用。
- 根据应用的需求,配置其他服务,如是否启用推送通知、游戏中心、内购等。完成配置后,点击 “Continue” 并确认信息,最后点击 “Register” 来注册新的 App ID。
- 创建Certificates
也是在 “Certificates, Identifiers & Profiles” 页面,点击"Certificates"。
- 生成证书签名请求(CSR):
- 在 Mac 上打开 “钥匙串访问” 应用(Keychain Access)。
- 选择 “钥匙串访问” -> “证书助理” -> “从证书颁发机构请求证书”。
- 填写你的电子邮件地址和常用名称(通常是你的姓名或公司名称),选择 “存储到磁盘”,然后点击 “继续”。这将生成一个.csr 文件,这个文件用于向苹果请求证书,在后台创建"certificates"时会用到。
- 在开发者账号中创建证书:
- 回到 “Certificates, Identifiers & Profiles” 页面,点击 “Certificates” 部分下的 “All”。
- 根据你的需求选择证书类型,如 “iOS Distribution”(用于发布应用到 App Store)或 “iOS Development”(用于开发和测试),然后点击 “+” 按钮。
- 上传刚刚生成的.csr 文件,然后按照提示完成证书的创建。苹果会对证书进行签名,完成后你可以下载.cer 证书文件。
- 下载后的.cer 证书文件需要双击安装到 “钥匙串访问” 应用中,以便 Xcode 能够使用它。
- 创建Profiles
进入 “Certificates, Identifiers & Profiles” 页面,然后点击 Profiles 选项,点击+新增:
选择相应的用途,描述文件分为开发和发布,这里我们选择App Store为例(如果你打算上架应用或者在TestFlight测试),选择之后点击Continue:
这个App ID就是上面创建的 Identifiers,选中App ID之后,继续点击Continue:
这个证书就是第一步里面创建好的Certificates,选中 Certificates之后,继续点Continue:
在Provisioning Profile Name输入框输入你想命名的profile描述文件名称(自己定义),输入之后,点击Generate。至此,你已成功创建Provisioning Profiles描述文件。
返回到Profiles列表页面,找到你刚命名的创建profile文件,点击Download,下载到本地双击安装到Xcode中。
Xcode中配置 App ID 和 Profiles
回到IOS项目中的Targets(双击打开如图aiyunhua目录),选择Signing & Capabilities选项卡,点击Provisioning Profiles,Import导入你刚下载到本地的profile文件:
导入后,切换到Build Settings选项卡查看Signing是否已配置成功(下面没有错误提示就是成功):
- 成功:
- 失败:
失败原因:Provisioning profile “provision_profile_app_store” has app ID “com.linshang.app”, which does not match the bundle ID “com.linshang”.意思是APP ID没匹配。
解决办法:将上面的Bundle Identifier的值由提示中的com.linshang改为com.linshang.app。Bundle Identifier的值其实就是第一步里面创建的Identifiers的值。
至此,你也完成证书和描述文件的配置。
执行Archive进行打包
在开始打包之前,首先编辑Scheme:
选择Run选项卡,Info -> Build Configuration,如果你想生产打包提交到Apple Store,下拉选择Release,选完之后点close:
在Xcode中打开菜单栏Product->Archive:
点击右上角Distribubte App,根据需要进行选择,这里选择App Store Connect,点击Distribute:
等待十几秒…
发现报错了…仔细阅读下面红色框框中的信息,你会发现,问题出在一个叫做CFBundleIconName的字段,就是说,需要在Info.plist文件中,添加一个该字段,添加完成后,默认显示的名字是Icon Name,该字段是一个String的字段,value值为空。如下图所示:
下面来解决问题:
双击项目aiyunhua,点击 info,在Custom IOS Target Properties中,点击 + 号,添加Icon Name属性key,属性值value为:AppIcon。
下面说这个AppIcon的问题,注意,是i的大写,不是L的小写。这个表示的是应用的图标。从苹果发回来的邮件可以看得出来,大概是从iOS11以后,应用的图标就要配置在这个AppIcon里面,而这个是什么呢?做iOS开发的可能更加了解一些,就是Assets.xcassets下面的那个AppIcon,如图所示:
双击虚线区域进行上传图片,注意图片需要是1024*1024px。
继续 Distribute,等待Xcode编译打包和上传完成,生成ipa文件,出现如下图的uploaded,就是成功了:
恭喜你到这一步,app已经成功打包成ipa并且成功上传到App Store Connect,可点击查看。
在App Store Connect,进行发布审核
用TestFlight提交测试
阅读到这里,你将学会如何用TestFlight测试你开发完成的App,切换到TestFlight选项卡,填写测试信息:
-
新建测试群组;
-
添加测试成员;
-
添加之后,系统会自动发邮件通知测试人员进行验证测试,打开邮箱上的通知链接;
-
将兑换码 复制粘贴到TestFlight App上进行兑换即可进行测试。
最后
希望这篇文章能够帮助到大家。你在IOS打包过程中还有遇到其他问题吗?欢迎大家在评论区讨论学习。