IOS Xcode证书配置和ipa打包流程(附详细图文教程)

IOS Xcode证书配置和ipa打包流程(附图文教程)

  • 前言
  • ipa文件简介
  • 证书文件简介
  • Provisioning Profile描述文件简介
  • 当前环境版本
  • Xcode证书配置和ipa打包流程
    • 生成Apple Distribution Certificates证书
    • 创建描述文件(Provisioning Profiles)
    • 证书和描述文件配置
    • 执行Archive打包
    • 选择distribution Options
    • 在App Store Connect,进行发布审核
    • 用TestFlight提交测试
  • 最后

前言

在你最初接触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打包流程

简单来说,分以下几步:

  1. 在Xcode中打开项目,选择Xcode->Preferences->Accounts->Manage Certificates,生成Apple Distribution Certificates证书。
  2. 在苹果开发者后台创建描述文件(Provisioning Profile)。
  3. 在Xcode中,打开Targets -> Signing & Capabilities,进行证书和描述文件配置。
  4. 在Xcode中,执行Product -> Archive,打包构建。
  5. 选择需要的Export Options,例如Development或者Distribution。
  6. 选择需要的证书和Provisioning Profile,并选择Export。
  7. 等待Xcode编译打包和上传完成,生成ipa文件。
  8. 在App Store Connect,进行发布审核,或者使用TestFlight进行内测。

生成Apple Distribution Certificates证书

首先在Xcode中打开IOS项目,选择菜单栏Xcode->Preferences:

在这里插入图片描述

选择Accounts选项卡:
在这里插入图片描述

在右下角点击Manage Certificates…,会打开:

在这里插入图片描述
如果你没有显示对应的Apple Distribution Certificates文件,请在左下角点击+新增,选择Apple Distribubtion。
几秒中会自动生成证书文件如上图红方框。这一步之后 Xcode 会自动同步该证书到 App 管理后台上,查看地址:https://developer.apple.com/account/resources/certificates/list

你也可以通过检查系统钥匙串是否已正确生成:

在这里插入图片描述

到这里,你已成功生成发布证书。

如果你有其他的证书用途,你也可以点击这个证书导出为p12格式的文件(如云打包或者用其他电脑上架App):

在这里插入图片描述

重点: 一般一个开发者帐号创建一个发布证书就够了,如果以后需要在其他电脑上上架App,只需要在钥匙串访问中创建p12文件,把p12文件安装到其他电脑上,这相当于给予了其他电脑发布App的权限。

创建描述文件(Provisioning Profiles)

登录苹果开发者官网,然后点击进入描述文件:

在这里插入图片描述

选择Profiles选项,点击+新增:

在这里插入图片描述

选择相应的用途,描述文件分为开发和发布,这里我们选择App Store为例(如果你打算上架应用或者在TestFlight测试):

在这里插入图片描述

选择之后点击Continue:

在这里插入图片描述
选者App ID之后,继续点击Continue:

在这里插入图片描述

这个证书就是你刚Xcode上生成证书这一步骤生成的文件,然后继续点Continue:

在这里插入图片描述

在Provisioning Profile Name输入框输入你想命名的profile描述文件名称(自己定义),输入之后,点击Generate。至此,你已成功创建Provisioning Profiles描述文件。

在这里插入图片描述

返回到Profiles列表页面,找到你刚命名的创建profile文件,点击Download,下载到本地。

证书和描述文件配置

回到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。

至此,你也完成证书和描述文件的配置。

执行Archive打包

在开始打包之前,首先编辑Scheme:

在这里插入图片描述

选择Run选项卡,Info -> Build Configuration,如果你想生产打包提交到Apple Store,下拉选择Release,选完之后点close:

在这里插入图片描述
在Xcode中打开菜单栏Product->Archive:

选择distribution Options

在这里插入图片描述

点击右上角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选项卡,填写测试信息:

  1. 新建测试群组;
    在这里插入图片描述

  2. 添加测试成员;
    在这里插入图片描述

  3. 添加之后,系统会自动发邮件通知测试人员进行验证测试,打开邮箱上的通知链接;

  4. 兑换码 复制粘贴到TestFlight App上进行兑换即可进行测试。

最后

希望这篇文章能够帮助到大家。你在IOS打包过程中还有遇到其他问题吗,欢迎大家在评论区讨论学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/834446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Goland开发者软件激活使用教程

Goland开发者工具: Goland是由JetBrains公司推出的专门针对Go语言设计的集成开发环境(IDE)。这款工具具有智能的代码补全、强大的代码导航和重构功能,同时提供了丰富的调试工具,能够满足Golang开发者的各种需求。 Gol…

pwn(一)前置技能

以下是pwn中的题目(漏洞)类型: 关于pwn的学习: 一.什么是pwn?(二进制的漏洞) "Pwn"是一个俚语,起源于电子游戏社区,经常在英语中用作网络或电子游戏文化中的…

数字化转型浪潮下,信创如何破浪前行,六招助你稳中求胜

信创改造落地过程中的六个难点及应对经验 技术生态迅猛发展,尚未成熟且多元化,信创技术栈应用经验匮乏,导致改造落地工作面临重重挑战。在此背景下,如何克服技术难题,推动信创改造顺利实施,成为业界亟待解决…

Linux nohup 命令

Linux nohup 命令 应用场景 使用 PyCharm 连接服务器跑模型虽然很方便,但是如果遇到网络不佳、PyCharm出BUG、急需转移阵地等情况就只能中断训练,前面的全白跑了。 因此可以尝试直接在服务器上使用命令跑模型,这个命令好说,笨一…

为什么需要归档和管理合同

归档和管理合同是非常重要的,主要有以下几个原因: 1. 法律合规性:公司需要遵守法律和监管要求,合同是法律文件,涉及公司的权益和责任。归档和管理合同可以确保公司遵守法律法规,合同的内容和执行过程都符合…

水质监测设备预警系统

随着工业化进程的加快和城市化水平的提高,水质安全问题愈发受到社会各界的广泛关注。为了确保水资源的清洁与安全,水质监测设备预警系统成为了不可或缺的利器。在这个背景下,HiWoo Cloud平台凭借其先进的技术和卓越的性能,为水质监…

【Java SE】对象的比较

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 本期内容满满干货,将会深入介绍对象与对象之间是如何进行比较的,我们知道基本数据类型是可以直…

[Linux]如何在Ubuntu 22.04系統安裝Node-red?

Node-red是一個建立在Node.js上的視覺化程式設計工具,其常見的應用情境為建置或轉換各項硬體之間的通信協定的物聯網或工聯網場域,其可藉由設置來安裝第三方應用模組來建置多樣的通信協定節點,包含modbus in/out, mqtt in/out, websocket in/…

Mac YOLO V9推理测试

环境: Mac M1 (MacOS Sonoma 14.3.1) Python 3.11PyTorch 2.1.2 一、准备工作 工程及模型下载:​​​​​​​https://github.com/WongKinYiu/yolov9 git clone https://github.com/WongKinYiu/yolov9.git 克隆后安装相关依赖(没啥依赖好装…

容器集群管理系统Kubernetes(K8S)

目录 一、前言 1.1什么是云原生? 1.2云要素的四要素? 1.2.1微服务 1.2.2容器化 1.2.3DevOps 1.2.4持续交付 1.3云平台有哪些? 1.4SRE 二、Kubernetes 概述 2.1K8S 是什么 2.2K8S作用 2.3K8S版本 2.4为什么要用 K8S 2.5K8S 的特…

在Ubuntu上安装Anaconda之后,启动失败

为了方便管理Pythonu环境,在Ubuntu的Docker容器中安装了Anaconda,安装完成,启动时出现如下错误: conda activate xxx usage: conda [-h] [--no-plugins] [-V] COMMAND ... conda: error: argument COMMAND: invalid choice: acti…

如何让加快OpenHarmony编译速度?

OpenHarmony 有两种编译方式,一种是通过 hb 工具编译,一种是通过 build.sh 脚本编译。本文笔者将提升 build.sh 方式编译速度的方法整理如下: 因为笔者只用 build.sh 脚本编译,没用过 hb 工具,好像下面的选项也可以用于…

Jenkins--自动化构建和部署SpringBoot项目

一、实现目标 通过在Jenkins中创建流水线任务,编写流水线脚本以实现自动化构建和部署SpringBoot项目。流水线脚本主要实现以下几个步骤: Preparation:从gitee上拉取远程仓库的SpringBoot项目代码。Build:使用Maven对拉取的代码进…

部署JVS服务出现上传文件不可用,问题原因排查。

事情的起因是这样的,部门经理让我部署一下JVS资源共享框架,项目的地址是在这里 项目资源地址 各位小伙伴们做好了,我要开始发车了,全新的“裂开之旅” 简单展示一下如何部署JVS文档 直达链接 撕裂要开始了 本来服务启动的好好…

链式二叉树的基本操作1

1.概念回顾 讲二叉树的基本操作之前,我们回顾一下二叉树的概念 在讲树之前,我们的每讲一种数据结构,无外乎就是在讲它们的增删查改,但是在树这里,就有了不小变化。 2.结点的定义 既然是链式二叉树,那必须…

部署 Sentinel 控制台:实现流量管理和监控

序言 Sentinel 是阿里巴巴开源的一款流量防护与监控平台,它可以帮助开发者有效地管理微服务的流量,实现流量控制、熔断降级、系统负载保护等功能。本文将介绍如何在项目中部署和配置 Sentinel 控制台,实现微服务的流量防护和监控。 一、Sen…

深入理解Linux中TCP/IP协议栈的实现原理与具体过程

一、Linux内核与网络体系结构 在我们了解整个linux系统的网络体系结构之前,我们需要对整个网络体系调用,初始化和交互的位置,同时也是Linux操作系统中最为关键的一部分代码-------内核,有一个初步的认知。 1、Linux内核的结构 …

智能改写文章怎么做,3个方法让你轻松改出高质量文章

在如今的自媒体兴盛时代,内容创作对于自媒体人来说是必不可少的一项工作,然而,如何在保持内容原创性的前提下迅速生成高质量的文章变得尤为重要。智能改写文章的出现,为所有的自媒体人带来了一种全新的思路,它让大家在…

2024付费进群系统,源码及搭建变现视频课程(教程+源码)

前三节讲解搭建支付对接,后两节讲解一些引流变现的方法,还有一种变现就是帮人搭建这样的平台,因为全网都没有一套完整的视频教怎么搭建的,有也只是文字教程,一般新人根本看不懂,我视频实操演示,…

16-LINUX--线程安全

一。线程安全 线程安全即就是在多线程运行的时候,不论线程的调度顺序怎样,最终的结果都是 一样的、正确的。那么就说这些线程是安全的。 要保证线程安全需要做到: 1) 对线程同步,保证同一时刻只有一个线程访问临界资…