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

文章目录

  • 零、前置说明
  • 一、创建本地证书
  • 二、配置描述文件
    • 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.rhkb.cn/news/151705.html

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

相关文章

竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…

【研究的艺术】通读《The Craft of Research》

通读《The Craft of Research》 前言1. 跟读者建立联系2. 明白问题的重要性3. 组织论述4. 论点4.1 Making Claims4.2 Assembling Reasons and Evidence4.3 Acknowledgments and Responses4.4 Warrants 未完待续。。。 前言 本篇博客是《The Craft of Research》的通读笔记&…

华为云云耀云服务器L实例评测|Elasticsearch的Docker版本的安装和参数设置 端口开放和浏览器访问

前言 最近华为云云耀云服务器L实例上新,也搞了一台来玩,期间遇到各种问题,在解决问题的过程中学到不少和运维相关的知识。 本篇博客介绍Elasticsearch的Docker版本的安装和参数设置,端口开放和浏览器访问。 其他相关的华为云云…

爱普生LQ1900KIIH复位方法

爱普生EPSON 1900KIIH是一部通用针式打印机,136列(10cpi下)的打印宽度,缓冲区128KB,打印速度为270字/秒。 打印机类型 打印方式:24针击打式点阵打印、打印方向:双向逻辑查找、安全规格标准&am…

jvm概述

1、JVM体系结构 2、JVM运行时数据区 3、JVM内存模型 JVM运行时内存 共享内存区 线程内存区 3.1、共享内存区 共享内存区 持久带(方法区 其他) 堆(Old Space Young Space(den S0 S1)) 持久代: JVM用持久带(Permanent Space)实现方法…

Aurora中的策略模式和模板模式

Aurora中的策略模式和模板模式 在aurora中为了方便以后的扩展使用了策略模式和模板模式实现图片上传和搜索功能,能够在配置类中设置使用Oss或者minio上传图片,es或者mysql文章搜索。后续有新的上传方式或者搜索方式只需要编写对应的实现类即可&#xff…

在原生html中使用less

引入less <link rel"stylesheet/less" href"./lessDemo.less" /><script src"./js/less.min.js"></script> less.min.js文件下载地址:https://github.com/less/less.js 注意&#xff1a;less文件在前&#xff0c;js文件在后…

深入理解强化学习——强化学习的基础知识

分类目录&#xff1a;《深入理解强化学习》总目录 在机器学习领域&#xff0c;有一类任务和人的选择很相似&#xff0c;即序贯决策&#xff08;Sequential Decision Making&#xff09;任务。决策和预测任务不同&#xff0c;决策往往会带来“后果”&#xff0c;因此决策者需要为…

C++ day2

自己封装一个矩形类(Rect)&#xff0c;拥有私有属性:宽度(width)、高度(height)&#xff0c; 定义公有成员函数: 初始化函数:void init(int w, int h) 更改宽度的函数:set_w(int w) 更改高度的函数:set_h(int h) 输出该矩形的周长和面积函数:void show() #include <ios…

2.4 turtle语法元素分析 | Python语言程序设计(嵩天)

文章目录 课程简介第二章 Python基本图形绘制2.4 turtle语法元素分析2.4.1 库引用与import2.4.2 turtle画笔控制函数2.4.3 turtle运动控制函数2.4.4 turtle方向控制函数2.4.5 循环语句与range()函数&#xff08;基本循环语句&#xff09;2.4.6 "Python蟒蛇绘制"代码分…

软件测试基础 - 测试覆盖率

一、覆盖率概念 覆盖率是用来度量测试完整性的一个手段&#xff0c;是测试技术有效性的一个度量。分为&#xff1a;白盒覆盖、灰盒覆盖和黑盒覆盖&#xff1b;测试用例设计不能一味追求覆盖率&#xff0c;因为测试成本随覆盖率的增加而增加。 覆盖率&#xff08;至少被执行一次…

stm32的时钟、中断的配置(针对寄存器),一些基础知识

一、学习参考资料 &#xff08;1&#xff09;正点原子的寄存器源码。 &#xff08;2&#xff09;STM32F103最小系统板开发指南-寄存器版本_V1.1&#xff08;正点&#xff09; &#xff08;3&#xff09;STM32F103最小系统板开发指南-库函数版本_V1.1&#xff08;正点&#xff0…

C++基础——基础语法

1 注释 C支持单行注释和多行注释。 单行注释 // 注释内容单行注释直到改行末尾&#xff0c;可以与代码放在同一行&#xff0c;在代码后面注释 多行注释 /* 注释内容 */包含在其中的都会被注释 2 变量 变量的作用是给指定的内存空间起名&#xff0c;方便操作这段内存。变…

哈希应用之位图

文章目录 1.位图概念2.面试题引入3.代码解决[配注释]4.位图应用4.1找到100亿个整数里只出现一次的整数4.2找两个分别有100亿个整数的文件的交集[只有1G内存]1.法一[使用于数据量<42亿]2.法二[适用于数据量大>42亿]3.在一个有100亿个int的文件中找到出现次数不超过2次的所…

AI伦理:如何确保人工智能的公平与透明

文章目录 什么是AI伦理&#xff1f;AI公平性AI透明性 为什么AI公平性和透明性重要&#xff1f;确保AI公平性的方法1. 数据收集和准备2. 算法和模型3. 解释和可解释性4. 持续监测 确保AI透明性的方法1. 记录决策2. 可解释性工具3. 用户教育 AI伦理的挑战和未来结论 &#x1f389…

STM32MP157汇编流水灯

.text .global _start _start: /* 使能GPIOE、GPIOF寄存器 RCC_MP_AHB4ENSETR * 基地址: 0x50000000 偏移地址: 0xA28 0x50000A28* RCC_MP_AHB4ENSETR[4]->1 RCC_MP_AHB4ENSETR[5]->1*/ LDR R0,0x50000A28LDR R1,[R0]ORR R1,R1,#(0x1<<4)STR R1,[R0]LDR R0,0x…

C++ 学习系列 -- std::list

一 std::list 介绍 list 是 c 中的序列式容器&#xff0c;其实现是双向链表&#xff0c;每个元素都有两个指针&#xff0c;分别指向前一个节点与后一个节点 链表与数组都是计算机常用的内存数据结构&#xff0c;与数组连续内存空间不一样的地方在于&#xff0c;链表的空间是不…

【Java 进阶篇】HTML块级元素详解

HTML&#xff08;Hypertext Markup Language&#xff09;是用于创建网页的标记语言。在HTML中&#xff0c;元素被分为块级元素和内联元素两种主要类型。块级元素通常用于构建网页的结构&#xff0c;而内联元素则嵌套在块级元素内&#xff0c;用于添加文本和其他内容。本文将重点…

异常:找不到匹配的key exchange算法

目录 问题描述原因分析解决方案 问题描述 PC 操作系统&#xff1a;Windows 10 企业版 LTSC PC 异常软件&#xff1a;XshellPortable 4(Build 0127) PC 正常软件&#xff1a;PuTTY Release 0.74、MobaXterm_Personal_23.1 服务器操作系统&#xff1a;OpenEuler 22.03 (LTS-SP2)…

Ubuntu 22.04 安装系统 手动分区 针对只有一块硬盘 lvm 单独分出/home

自动安装的信息 参考自动安装时产生的分区信息 rootyeqiang-MS-7B23:~# fdisk /dev/sdb -l Disk /dev/sdb&#xff1a;894.25 GiB&#xff0c;960197124096 字节&#xff0c;1875385008 个扇区 Disk model: INTEL SSDSC2KB96 单元&#xff1a;扇区 / 1 * 512 512 字节 扇区大…