XCode打包IOS应用发布App Store和Ad Hoc测试

news2024/9/20 8:11:54

文章目录

  • 零、前置说明
  • 一、创建本地证书
  • 二、配置描述文件
    • 2.1 配置certificates
      • 2.1.1 配置证书
      • 2.1.2 安装cer证书
        • 2.1.2.1 打包机器和生成证书同机器
        • 2.1.2.2 打包机器和生成证书不同机器
    • 2.2 创建Identifiers
    • 2.3 配置Devices
    • 2.4 配置Profiles
      • 2.4.1 配置生产Profile
      • 2.4.2 配置开发Profile
  • 三、配置打包项目
  • 四、开始项目打包
    • 4.1 Xcode打包
  • 五、测试安装分发

零、前置说明

  1. 此文章为最新IOS打包教程,每一步都是操作截图
  2. 文章包含大量图片说明,请注意流量消耗
  3. 由于工具之间的版本不一致,所以注意区分
  4. 如果有任何问题,欢迎大家留言一起沟通学习

一、创建本地证书

首先通过 本地钥匙串访问(Mac自带的工具)创建 CertificateSigningRequest.certSigningRequest 文件,步骤如下

  1. 选择 钥匙串访问 工具

image.png

  1. 生成证书:钥匙串访问 -> 证书助理 -> 从证书颁发机构请求证书

image.png

  1. 填写证书信息

image.png

  1. 保存证书,选择保存的位置

image.png

  1. 保存证书成功

image.png

  1. 在访达中显示,可以看到生成了证书:CertificateSigningRequest.certSigningRequest

image.png

二、配置描述文件

进入到苹果开发者官网:https://developer.apple.com/account/resources/services/list,需要配置下图中红框中的四部分内容,按照截图顺序配置

image.png

2.1 配置certificates

苹果开发者后台的Certificates,也称为证书,是用于证明开发者身份和授权开发者进行应用开发和发布的数字证书。在苹果开发者后台,开发者需要创建并管理各种类型的Certificates,包括开发人员证书、发布证书和描述文件等。这些Certificates是开发者在App Store上进行应用提交和分发的重要信息,苹果会根据这些Certificates来验证开发者身份和应用合法性

2.1.1 配置证书

  1. 在苹果官方的 developer 官网上点击创建证书,上传步骤 1 中的 CertificateSigningRequest.certSigningRequest 文件,然后下载 .cer 证书文件
    • 创建证书地址:https://developer.apple.com/account/resources/certificates/add
  2. 选择Apple Distribution然后Continue
    • Apple Developent:是开发使用的证书,例如开发人员自己使用
    • Apple Distribution:是发布使用的证书,例如发布到App Store,Testflight等,此处是为了发布,故选择Apple Distribution类型

image.png

  1. 选择桌面的CertificateSigningRequest.certSigningRequest 证书文件,然后Continue

image.png

  1. 点击Download下载distribution.cer证书,这个证书就是整个应用使用的证书

image.png

2.1.2 安装cer证书

证书机器:就是使用钥匙串工具生成证书的机器
打包机器:就是运行代码,打包成app的机器

2.1.2.1 打包机器和生成证书同机器
  1. 如果生成证书机器和打包机器是同一个则直接双击distribution.cer文件安装到本机即可

image.png

  1. 安装完成后在 秘钥串访问 中可以看到证书

image.png

  1. 配置完成证书后,建议重启电脑,因为不重启电脑可能出现后面xcode中配置打包的时候一直提示证书不对
2.1.2.2 打包机器和生成证书不同机器
  1. 需要注意如果打包机器生成证书文件的机器不是同一个则不能直接把这个 .cer 证书文件安装到打包服务上
  2. 而是把这个 .cer 先安装到上面第 1 步中生成的 CertificateSigningRequest.certSigningRequest 的机器上,然后通过导出证书生成带有密码的 p12 证书文件,这个文件才是可以安装到打包机器上的证书文件
  3. 在生成证书机器上找到安装的证书,然后证书名称上单击右键选择导出

image.png

  1. 导出时注意文件格式是:个人信息交换.p12格式,完成后就会在桌面生成一个证书.p12文件,存储的时候会要求输入密码(这个密码是证书密码,不是电脑密码),按照提示输入即可

image.png

  1. 安装证书,把 p12 文件放置到打包服务上,然后点击证书进行安装,输入 步骤4 中创建时输入的证书密码,安装到钥匙串的 “登陆” ,这时候就可以看到钥匙串证书里带有 TeamId 的 Apple Distribution 证书

image.png

  1. 需要额外注意安装后可能会看到说“证书不受信任”的提示,这可能是因为机器上缺少 AppleWWDRCA (Apple Worldwide Developer Relations Certification Authority)证书,可以通过下面的地址进行安装解决:
    • https://developer.apple.com/cn/support/code-signing/
    • https://developer.apple.com/support/expiration/
  2. 配置完成证书后,建议重启电脑,因为不重启电脑可能出现后面xcode中配置打包的时候一直提示证书不对

2.2 创建Identifiers

Identifiers:设备标识符,是用于唯一标识一个应用的数字标识符。每个应用都需要一个唯一的Identifiers,以便在App Store上进行发布和更新。这个Identifiers是应用在App Store上进行分发的重要信息,开发者需要在苹果开发者后台中创建并管理这个Identifiers

  1. 点击Identifiers的添加标识符:https://developer.apple.com/account/resources/identifiers/list

image.png

  1. 选择Apple Ids,然后continue

image.png

  1. 选择类型,此处是打包APP,所以选择APP类型

image.png

  1. 配置标识符信息

image.png

  1. 配置完成保存即可,然后在标识符处就会显示出创建的设备标识符

image.png

2.3 配置Devices

这个是配置内测的手机的,如果是直接发布到App Store,则这一部分可以不配置

主要用下2.2节的Ad Hoc打包方式,可以先看2.2再倒回来看此部分(因为配置Profile时

  1. 选择Devices配置:https://developer.apple.com/account/resources/devices/list

image.png

  1. 配置信息,主要配置UDID,此UDID可以通过蒲公英生成,参考第五节、测试安装分发

image.png

  1. 确认填写的信息是否正确

image.png

  1. 完成创建,选择Done,然后设备就创建好了

image.png

  1. 如果有多个测试人员,就需要配置多个,如下

image.png

2.4 配置Profiles

苹果开发者后台的Profiles,也称为配置文件,是用于指定应用在特定设备上运行的配置信息。在苹果开发者后台,开发者可以创建并管理各种类型的Profiles,包括应用内购买配置文件、应用分发配置文件等。这些Profiles包含了应用在特定设备上的运行配置信息,包括应用的名称、版本号、设备类型等。在开发者将应用提交到App Store上进行分发时,苹果会根据这些Profiles来验证应用的合法性和兼容性

2.4.1 配置生产Profile

  1. 配置完证书后就是配置描述文件,在苹果开发者网站的 Profiles 创建对应的 mobile provision
    • https://developer.apple.com/account/resources/profiles/add
  2. 选择 Distribution - App Store 创建对应的打包模式,打包分为Ad Hoc和App Store两种方式,区别如下:
    • App Store:打出来的包只能通过 Store 或者官方 TestFight 下载
    • Ad Hoc:也称为QA版本,Ad Hoc 打包的可以通过内部自定义分发下载(通过添加测试设备的 UDID)

例如此处为了下面的第五节、测试安装分发,选择Ad Hoc;如果是App Store则选择App Store即可配置步骤一样

image.png

  1. 选择需要支持的 App Id ,也就是 bundle Id(在2.1配置的信息)

image.png

  1. 选择前面生成的 Distribution 证书 ,这里主要一定要选择同一个证书文件

image.png

  1. 选择已经添加的 Devices 的 UDID,参考2.3节进行添加(如果没有配置过此时提示没有设备,选择Create Device也可以进入到创建设备功能)

image.png

  1. 输入 Provisioning Profile Name,这个 Name 在后面会有作用

image.png

  1. 完成配置后下载文件,将它放到打包机器上的 /Users/账户/Library/MobileDevice/Provisioning Profiles 目录下,后面会需要用到它
    • 例如:/Users/tianxincoord/Library/MobileDevice/Provisioning Profiles

image.png

2.4.2 配置开发Profile

此步可以选择性配置,如果仅仅是作为开发自己测试,则可以配置

  1. 新增开发证书,然后选择证书文件生成对应证书,剩下操作和生产一致

image.png

  1. 此时具有一个生产的和一个开发的,如果是开发则选择开发这个,如果是生成则选择生产

image.png

三、配置打包项目

  1. 完成了证书和描述文件的配置后,接下来就是针对项目的配置。首先将需要打包的项目 clone 到打包机器上,然后打开项目ios/Runner.xcworkspace**(注意如果是flutter项目不要直接打开根目录,而是打开 flutter项目下的 ios/Runner.xcworkspace)**
  2. 查看基础配置信息,取消勾选 Automatically manage signing
    • 填写Bundle ID,这个Bundle ID是2.2处配置的

image.png

  1. 选择前面放置的描述文件,就可以看到 Xcode 会自动匹配到钥匙串里的证书,然后显示正常的证书和描述文件配置
    • 说明:如果此处选择证书文件后说证书不对,如果上述步骤都操作对的话请重启一下电脑

image.png

  1. 如果重启电脑无用则检查Build Settings是否按照下图配置

image.png

  1. 这样打包环境就配置好了

四、开始项目打包

4.1 Xcode打包

  1. 选择 Product -> Archve

image.png

  1. 等待Archive完成后会自动打开下面的窗口,此处Name为Runner不用管,并非是应用的名字,点击Distribute App开始分发应用

image.png

  1. 选择Release Testing,Ad Hoc方式,可以自己分发应用包,例如蒲公英
    • 如果是发布到App Store就选择第一个,可以直接上传到Apple后台,操作比较简单(另外一个原因是不方便直接演示发到后台,哈哈哈)
    • 此处选择Release Testing,Ad Hoc是为了能多掌握内部测试方法

image.png

  1. 打包完成,选择 Export,然后选择存储路径

image.png

  1. 在存储位置打开文件夹,其中的 .ipa 文件就是分发文件

image.png

五、测试安装分发

  1. 打开蒲公英平台:https://www.pgyer.com/,选择生成UDID

image.png

  1. 按照提示扫描二维码安装证书后获取对应的UDID

image.png

  1. 选择发布应用:https://www.pgyer.com/app/publish

image.png

  1. 上传打包好的ipa文件后按照提示操作即可,其中就会有下载地址和安装页面,扫码安装即可

image.png
5. 以上就是整个分发测试流程

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

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

相关文章

MATLAB:拟合与插值

一、关于多项式的基本操作 若要求非线性方程的根,则采用fzero, fminbnd函数 二、多项式拟合 clc, clear x0:0.2:10; y0.25*x20*sin(x); plot(x,y,k.,MarkerSize,15) grid on; hold on [p1,s1,mu1]polyfit(x,y,3); %3阶多项式拟合 y1polyval(p1,x,s1,mu1); [p2,s…

JAVA---学生管理系统

遍历字符串 ArrayList学习:

git:码云仓库提交以及Spring项目创建

git:码云仓库提交 1 前言 码云访问稳定性优于github,首先准备好码云的账户: 官网下载GIT,打开git bash: 查看当前用户的所有GIT仓库,需要查看全局的配置信息,使用如下命令: git …

关于数据通信知识的补充——第二篇

目录 四.二层交换机 5.实现不同vlan通信的原理 方法一:路由器网关 方法二:单臂路由 方法三:三层交换机 五.三层路由技术 (1)直连路由 (2)静态路由 (3)动态路由 …

220平现代风装修设计亮点分享,福州·名城银河湾。福州中宅装饰,福州装修

福州名城银河湾,220平现代风装修案例分享,以下是对这些设计亮点的详细分析: ①客厅木饰面背景墙,搭配灰橙撞色皮质沙发 客厅的木饰面背景墙与撞色皮质沙发的搭配,不仅提供了温馨舒适的氛围,还为空间增添了…

2核4G云服务器能支持多少人同时访问?性能测评来了

腾讯云轻量2核4G5M带宽服务器支持多少人在线访问?5M带宽下载速度峰值可达640KB/秒,阿腾云以搭建网站为例,假设优化后平均大小为60KB,则5M带宽可支撑10个用户同时在1秒内打开网站,并发数为10,经阿腾云测试&a…

零知识玩转AVH(7)—— 门槛任务(2)所遇错误及解决(1)

接前一篇文章:零知识玩转AVH(6)—— 门槛任务(1)源码下载、编译及运行 上一回说到完成门槛任务 https://github.com/ArmDeveloperEcosystem/Paddle-examples-for-AVH (推荐,内含 ML 视觉用例&am…

如何在Tomcat中的webapp中手动发布

这里写目录标题 首先进入Tomcat文件夹进入webaaps中,编写Java代码最后进入浏览器打开就看可以进入这个界面了 首先进入Tomcat文件夹 如图: 进入webaaps中, 编写Java代码 最后进入浏览器打开 就看可以进入这个界面了

【Spring Boot】创建你的第一个 Spring Boot 应用

创建你的第一个 Spring Boot 应用 1.环境配置2.步骤详解3.项目结构分析3.1 入口类 DemoApplication3.2 控制器 PathVariableController3.3 控制器 BasicController3.4 模型 User 4.运行 Spring Boot 目前已经成为了 Java 开发领域的框架范式。本篇博客,我将带领大家…

DataGrip 面试题及答案整理,最新面试题

DataGrip的数据库兼容性和多数据库支持如何实现? DataGrip实现数据库兼容性和多数据库支持的方式包括: 1、广泛的数据库支持: DataGrip支持多种数据库,包括但不限于MySQL, PostgreSQL, SQL Server, Oracle, SQLite, 和MongoDB&a…

前端学习之css选择器--基本选择器、关系选择器、属性选择器、复合选择器、伪类选择器

目录 基本选择器 结果 关系选择器 结果 父子关系 祖先后代关系 相邻兄弟关系 兄弟关系 ​编辑 属性选择器 结果 复合选择器 结果 伪类选择器 结果 伪类选择器-操作标签 结果 未访问 访问后 悬停 基本选择器 <!DOCTYPE html> <html lang"en"…

Java八股文(Git)

Java八股文のGit Git Git Git 是什么&#xff1f;它有什么作用&#xff1f; Git 是一种分布式版本控制系统&#xff0c;用于管理源代码的变更和追踪。 它可以记录文件更改的历史&#xff0c;帮助多人协同开发&#xff0c;并提供了回滚、分支管理等功能。 Git 和 SVN&#xff0…

数字电子技术实验(四)

单选题 1.组合逻辑电路中产生竞争冒险的原因是&#xff1f; A. 电路没有最简化 。 B. 时延 。 C. 电路有多个输出。 D. 逻辑门的类型不同。 答案&#xff1a;B 评语&#xff1a;10分 单选题 2.下列表达式不存在竞争冒险的有&#xff1f; 答案&#xff1a;A 评语&#x…

【b站咸虾米】2 Vue基础(下) 2021最新Vue从基础到实例高级_vue2_vuecli脚手架博客案例

课程地址&#xff1a;【2021最新Vue从基础到实例高级_vue2_vuecli脚手架博客案例】 https://www.bilibili.com/video/BV1pz4y1S7bC/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 2 Vue基础 下 2.8 计算属性 2.8.1 计算属性使用 2.8.2 计算…

MySQL:视图

1. 概述 在MySQL中&#xff0c;视图&#xff08;View&#xff09;是一个虚拟存在的表&#xff0c;其内容是由查询定义的。视图本身并不包含数据&#xff0c;它只包含一条SQL查询语句&#xff08;即定义视图的SELECT语句&#xff09;。当通过视图访问数据时&#xff0c;MySQL会执…

zed2i相机驱动的安装(2)

安装完sdk和wrapper&#xff0c;启动时显示缺少标定文件&#xff0c;第一反应是运行自带的标定程序 但是此时运行ZED tools里的标定程序也会出问题 打开 On Linux : /usr/local/zed/settings/On Windows : C:\ProgramData\Stereolabs\settings 查看里面是否是空的&#xff…

c++算法学习笔记 (8) 树与图部分

1.树与图的存储 &#xff08;1&#xff09;邻接矩阵 &#xff08;2&#xff09;邻接表 // 链式前向星模板&#xff08;数组模拟&#xff09; #include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N 100010, M …

官网链接怎么转二维码?扫码直接跳转官网的方法

随着互联网的不断发展&#xff0c;现在一般信息内容都是通过手机来获取的&#xff0c;所以现在通过手机访问官方网站获取内容也是一种很常见的方式&#xff0c;那么如何将官网网址生成二维码图片&#xff0c;用户能够通过扫码访问官方网站或者其他页面内容呢&#xff1f;下面分…

基于SpringBoot SSM vue办公自动化系统

基于SpringBoot SSM vue办公自动化系统 系统功能 登录 个人中心 请假信息管理 考勤信息管理 出差信息管理 行政领导管理 代办事项管理 文档管理 公告信息管理 企业信息管理 会议室信息管理 资产设备管理 员工信息管理 开发环境和技术 开发语言&#xff1a;Java 使用框架: S…

xray问题排查,curl: (35) Encountered end of file(已解决)

经过了好几次排查&#xff0c;都没找到问题&#xff0c;先说问题的排查过程&#xff0c;多次确认了user信息&#xff0c;包括用户id和alterid&#xff0c;都没问题&#xff0c;头大的一逼 问题排查过程 确保本地的xray服务是正常的 [rootk8s-master01 xray]# systemctl stat…