首页 > 其他分享 >【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了

【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了

时间:2025-01-09 23:29:29浏览次数:3  
标签:文件 上架 证书 App 应用程序 ID 开发者 完整版 app

【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app

背景介绍

接第四篇提交了安卓商店后,需要等待审核结果,但是目前苹果上架我们不能干等着,因此本文是你们最关心的苹果app上架app store流程来了,这里优雅草央千澈梳理了从开发者账户发行证书,打包APP,上传IPA,提交testflight,上传苹果商店的全流程,本流程没有借助第三方工具(市面上基本上都要花钱),但是需要仔细学习(第三方工具是需要花钱的,但是也便捷不少,土豪可以选择花钱)。

IOS应用·上架苹果商店 app store

发行证书

苹果开发者账户大家都知道,就是Apple id,第一步是首先成为开发者交699元,(这一步非常简单这里就不讲,当然没有这一步的同学本文也就不用看,因为本文是针对苹果开发者才可以有效的。-)

访问开发者平台,登录

Sign In - Apple

这里是中文,后续基本都是英文了,点击·证书

点击创建一个新证书 Create a certificate

很多内容,但是不用管

这里我们只考虑开发证书(iOS App Development)和发布证书(iOS Distribution)

开发证书(iOS App Development)

  • 目的:用于开发和测试应用程序。
  • 使用场景:您可以将使用开发证书签名的应用程序安装到您的开发设备上进行测试。
  • 分发方式:这种证书仅限于开发者及其团队成员,不能用于发布到App Store。
  • 有效期:通常有效期为一年,需要定期更新。

发布证书(iOS Distribution)

  • 目的:用于将应用程序正式发布到App Store。
  • 使用场景:签名后提交到App Store或用于企业内部发布。
  • 分发方式:这种证书用于发布应用到广泛的用户群体。
  • 有效期:同样通常有效期为一年。

总结来说,开发证书主要用于测试和开发阶段,而发布证书是用于最终发布和分发应用。两个证书在功能和使用场景上有明显区别,但都必须在苹果开发者账户中进行管理和更新。

我们创建2个,第一个开发证书,点击后进入

提示上传请求文件To manually generate a Certificate, you need a Certificate Signing Request (CSR) file from your Mac,让你从你的苹果电脑生成csr文件,

正常的生成步骤为:

打开“钥匙串访问”工具,选择“证书助理” > “从证书颁发机构请求证书…”

按照提示输入您的电子邮件地址和常用名称,选择“保存到磁盘”以生成CSR文件。

上传生成的CSR文件。

这里由于我目前在使用windows系统,因此,我需要用第三方网站,这里推荐个 中文的

CSR文件生成工具-中国数字证书CHINASSL


中文就简单很多,填写下即可

这样就能申请到csr文件和key文件,都保存好,返回提交页面,提交csr点continue完了就提示下载证书了。

下载保存好我们的证书,这是开发证书,(所以我们命名yangqianchetest)

不得不说,证书的图标是真的很漂亮,优雅草央千澈很喜欢,

按照这个操作我们再重复一遍,但是要选择发布证书,iOS Distribution

此刻我们已经能看到有2本证书了。

添加标识符和描述文件

扩展知识:

苹果开发者标识符

苹果开发者标识符(App Identifier, 简称App ID)是在苹果开发者账户中为每个应用程序分配的唯一标识符。它主要用于标识和管理应用程序,确保每个应用程序在App Store和用户设备上的唯一性。

1. App ID的组成部分

App ID由两部分组成:

  • App ID前缀:通常是您的Team ID,苹果开发者账户自动分配的一个唯一标识符。
  • App ID后缀:由开发者自己定义,通常是应用程序的Bundle Identifier。

完整的App ID形式如下:

App ID前缀.Bundle Identifier

2. 创建和管理App ID

在苹果开发者账户中,您可以创建和管理App ID。以下是创建App ID的步骤:

1. 登录苹果开发者账户

访问苹果开发者账户并使用您的Apple ID登录。

2. 进入“证书、标识符和配置文件”

在页面上找到并点击“证书、标识符和配置文件”。

3. 创建新的App ID

选择左侧的“标识符”,然后点击右上角的“+”按钮,创建新的App ID。

4. 填写App ID详细信息

按照提示填写相关信息,包括App ID描述、App ID后缀(Bundle Identifier)等。

5. 选择App服务

根据您的应用需求,选择您需要的App服务(例如推送通知、iCloud等)。

6. 确认并注册App ID

确认信息无误后,点击“继续”并注册App ID。


我们点击新增,这里得Identifiers 就是标识符

新建 选择 app ids

选择APP

左边写标识符描述和用途,右边填写包名,包名这里就很重要了奥,写完了要记下来,并且这个包名和第三方各类sdk绑定是有关联的,因此写了就不能轻易变动

这里比如标识符描述yechengdu-youyacao 包名:com.yechengdu.youyacao

往下滑是选择对应APP能够使用的权限,如实选择,比如我们夜成都app就能使用的有拍视频,选视频,短信登录,wifi网络,5g网络这几样,因此要对应选择。

其他的我们基本上用不上,包括我们app里面也没有支付功能,纯免费的。


扩展知识

苹果开发者描述文件(.mobileprovision)是一个关键文件,用于在iOS设备上部署和测试应用程序。它的主要作用如下:

1. 绑定应用ID和设备

描述文件将应用程序的App ID(应用标识符)与一组特定的设备进行绑定。这意味着只有在描述文件中列出的设备才能安装和运行该应用程序。这对于开发和测试阶段非常重要,因为它确保了应用程序只能在指定的设备上运行。

2. 关联证书和配置

描述文件包含了应用程序使用的证书信息,例如开发证书或发布证书。这确保了应用程序在安装和运行时能够正确地进行代码签名验证,从而保证应用程序的完整性和安全性。

3. 用于调试和测试

开发描述文件允许开发人员在实际设备上调试和测试他们的应用程序,而不必通过App Store发布。这有助于发现和修复在模拟器中无法重现的设备特定问题。

4. 用于发布和分发

发布描述文件(Ad Hoc或App Store类型)允许开发人员将应用程序分发给测试人员或最终用户。Ad Hoc描述文件用于小规模的测试分发,而App Store描述文件用于将应用程序提交到App Store进行发布。

新增描述文件,点击Profiles右侧的+新增

上面第一步我们选择IOS app ,因为我们是做发行到 苹果手机的。

接下来下面的是重头戏,刚好一起介绍一下了:

扩展知识:

1. App Store描述文件

  • 目的:用于将应用程序发布到苹果App Store。
  • 使用场景:应用通过苹果的审核后会在App Store上架,供所有用户下载和安装。
  • 特点:发布到App Store的应用程序需要遵守苹果的审核指南,确保应用的质量和安全。

2. Ad Hoc描述文件

  • 目的:用于小规模测试和分发应用程序。
  • 使用场景:可以将应用程序分发给最多100台指定的设备进行测试,而不必通过App Store。
  • 特点:需要提供测试设备的UDID(唯一设备标识符),只能安装在这些指定的设备上。

3. Enterprise描述文件

  • 目的:用于企业内部分发应用程序。
  • 使用场景:适用于大公司或组织内部分发应用程序,应用程序不会在App Store上架,只在企业内部使用。
  • 特点:需要苹果的企业开发者计划(Apple Enterprise Developer Program),不限制设备数量,但只能用于企业内部。

4. In-House描述文件

  • 目的:类似于Enterprise描述文件,用于企业内部分发应用程序。
  • 使用场景:企业内部测试和分发应用程序,无需通过App Store。
  • 特点:也是企业开发者计划的一部分,用于大量内部设备的分发和测试。

看起来很懵了对吧,优雅草央千澈给你简单通俗的解释一下:

第一种,app store 也就是要上架苹果store商店的,目前就是我们现在要添加的这种。

第二种,提供UIDI的,也就是所谓签名分发平台的超级签名,一般十几元到几十元一个设备对外开放购买,通常一个开发者账户能够最多指定安装的数量为100个!

是不是有时候会遇到下载一个app提示你,是否安装描述文件? 对的,优雅草央千澈告诉你,这就是这类app开发者发行的描述文件

第三种和第四种差不多, Enterprise描述文件和 In-House描述文件,所谓企业签名,需要是苹果的企业开发者计划里面的企业才能发布的一种描述文件,理论上不限制企业设备数量,当一个app下载后需要让你“”。

你会遇到“未受信任的企业级开发者”的提示,这类所谓企业签名的app也就是如此了,做企业签名的收费平均在500-2000元一个月一个APP。

这也就是苹果签名的原理了,好继续我们的步骤。

我们照样发行两个描述文件,第一个我们选iOS App Development(开发证书用的描述文件) 第二个我们选App Store Connect (发布用的描述文件),也就是重复操作一次和上面一样,选择不一样。

选择id,正确选择刚才已经创建的标识符对应的苹果id包名

选择默认测试设备

填写描述文件名字,youyacao-yechengdu-description-develop

完成,点击下载即可

另外一本用户发布的证书即可为,youyacao-yechengdu-description-publish

转换cer证书变成p12证书

这里我们还有一步骤也就是,我们需要把我们的cer证书转换为打包可用的p12证书,这里首先我们要安装openssl软件

1. 下载OpenSSL

访问OpenSSL官方网站OpenSSL

并下载适用于Windows的安装包。选择合适的版本(32位或64位),并下载安装包。

2. 安装OpenSSL

  1. 双击下载的安装包,按照提示进行安装。通常只需一路下一步即可完成安装。
  2. 安装完成后,会提示您配置环境变量。请确保勾选“Add OpenSSL to the system PATH”(将OpenSSL添加到系统路径)选项,然后点击“Finish”完成安装。

3. 配置环境变量

  1. 打开“开始菜单”,搜索“环境变量”并选择“编辑环境变量”。
  2. 在“系统变量”中找到“Path”变量,点击“编辑”。
  3. 点击“新建”,然后输入OpenSSL的安装路径,例如C:\Program Files\OpenSSL-Win64\bin
  4. 点击“确定”保存更改。

4. 验证安装

  1. 打开命令提示符(终端)。
  2. 输入以下命令来验证OpenSSL是否安装成功:
` openssl version`


如果安装成功,您将看到OpenSSL的版本信息。



![](https://doc2.youyacao.com/server/index.php?s=/api/attachment/visitFile&sign=65e825ca9d164a018f8bd708229359e5)

5. 使用OpenSSL

现在您可以在终端中使用OpenSSL进行各种操作,例如生成密钥对、签名证书等。

转换CER证书为P12证书

打开命令提示符并导航到存放CER证书和私钥文件的目录。运行以下命令来转换CER证书为P12证书:

openssl pkcs12 -export -out your_p12_file.p12 -inkey your_private_key.key -in your_certificate.cer

在这个命令中:

  • -export 参数指定要导出P12证书。
  • -out 参数指定导出P12证书的文件名(如your_p12_file.p12)。
  • -inkey 参数指定私钥文件的路径和名称(如your_private_key.key)。
  • -in 参数指定CER证书文件的路径和名称(如your_certificate.cer)。

我先单独把他们放到一个文件夹 zhuanhuan,


看到我们的目录因此我们执行的代码则为:

openssl pkcs12 -export -out yangqianche.p12 -inkey yangqianche.key -in yangqianchepublish.cer

设置P12证书密码

Enter Export Password:
Verifying - Enter Export Password:

运行上述命令后,OpenSSL会提示您输入一个密码来保护P12证书。这个密码用于保护P12文件的安全,在导入P12证书时需要使用。

完成上述步骤后,您将成功生成P12证书文件。这个文件包含了您的CER证书和私钥,通常用于分发或部署应用时的签名。

整个输入密码的过程是不会被看到的,设置成功后记得多保存下,是找不回来的。

打包APP上传提交审核

优雅草央千澈以夜成都APP为例,夜成都APP是采用uniapp开发的,hbuilderx编译的,在打包界面我们如下填写,进入hbuilderx 我们开始打包ipa

填写和选取证书

开始进行打包

打包成功,返回苹果开发者中心

这一步 我们登陆https://appstoreconnect.apple.com/apps/bundle

添加app构建,这里选择新建。

填写信息 这里名称就是app显示的真正名称了。

成功后到这一步,基本上就和安卓提交版本审核差不多了,基本上就是截图,APP信息,以及其他隐私政策内容等了。

到这里苹果上架基本就告一段落,后续的就非常简单了,上传好ipa包,填写好所有信息后点击提交即可,遇到审核不通过就看看不通过的原因再整改,如果到这步依然有不明白的朋友可以评论,优雅草央千澈会根据反馈来更新本文。

标签:文件,上架,证书,App,应用程序,ID,开发者,完整版,app
From: https://blog.csdn.net/dujiangdu123/article/details/145044582

相关文章

  • Python + Appium 自动化操作微信入门(超详细)
    Appium是一个开源的自动化测试工具,支持Android、iOS平台上的原生应用,支持Java、Python、PHP等多种语言。Appium封装了Selenium,能够为用户提供所有常见的JSON格式的Selenium命令以及额外的移动设备相关的控制命令,比如:多点触控手势、屏幕朝向等。环境本文主要环境如下:......
  • 2025最全Java八股文(完整版)
    问:抽象类和接口有什么区别呢?从方法编写方面,抽象类中可以抽象方法和普通方法,而接口中只能编写抽象方法。从继承和实现方面,抽象方法只能继承一个类并且可以实现多个接口,而接口可以继承多个接口。在变量的定义方面,接口只能定义静态变量,抽象类可以定义普通变量和静态变量。问:fi......
  • android逆向—头条新闻app的token算法
    某刷新闻赚钱token算法逆向分析1.前言因为学校被当作高考考点,所以有了几天假期,正好可以用来逆逆前几天找到的一个刷新闻赚钱app。2.工具:Xposed、Charles、反射大师、VMOSPro3.抓包:通过抓包,发现手机验证码提交时有一个token。4.逆向token算法在jadx-gui里直接搜索t......
  • 2024小迪安全信息收集(完整版)
    目录注:端口扫描问题一、应用服务器-操作系统&IP资产#操作系统#IP资产二、应用服务器-端口扫描&角色定性#端口资产#应用服务#角色定性判定三、Web应用&备案产权&Whois反查&域名枚举&DNS记录&证书特征&相似查询主动信息收集被动信息收集域名子域名四、Web应用-架......
  • 小程序uniapp+java校园社团管理系统 rgu6d3
    目录系统实现截图技术栈开发核心技术介绍:为什么选择最新的Vue与SpringBoot技术核心代码部分展示代码执行流程详细视频演示源码获取系统实现截图技术栈jdk版本:jdk1.8+编程语言:java框架支持:springboot/ssm数据库:mysql版本不限数据库工具:Navicat/SQ......
  • 小程序uniapp+java易物小店物品交换系统 0439y
    目录系统实现截图技术栈开发核心技术介绍:为什么选择最新的Vue与SpringBoot技术核心代码部分展示代码执行流程详细视频演示源码获取系统实现截图技术栈jdk版本:jdk1.8+编程语言:java框架支持:springboot/ssm数据库:mysql版本不限数据库工具:Navicat/SQLyog......
  • 【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
    本文内容来自YashanDB官网,原文内容请见https://www.yashandb.com/newsinfo/7863046.html?templateId=1718516现象mybatis或mybaits-plus的mapper文件sql结尾加分号";"执行时报错:”YAS-04209unexpectedword;“解决办法将sql结尾分号“;”去掉。使用注解方式写的sql语句也......
  • 小程序uniapp+java校园服务闲置物品交易失物招领系统
    目录系统实现截图技术栈开发核心技术介绍:为什么选择最新的Vue与SpringBoot技术核心代码部分展示代码执行流程详细视频演示源码获取系统实现截图技术栈jdk版本:jdk1.8+编程语言:java框架支持:springboot/ssm数据库:mysql版本不限数据库工具:Navicat/SQLyog......
  • uniapp小程序中隐藏顶部导航栏和指定某页面去掉顶部导航栏小程序
    uniapp+vue3开发小程序过程中隐藏顶部导航栏和指定某页面去掉顶部导航栏方法在page.json中  "globalStyle":{    "navigationStyle":"custom",  },如果是指定某个页面关闭顶部导航栏,在style中添加"navigationStyle":"custom"   {  ......
  • uniapp开发微信小程序获取用户头像、昵称和手机号一键登录
    1<!--登录页面版本一-->2<!--#ifdefMP-WEIXIN-->3<viewclass="mpwx-logincolumn-center">4<viewclass="loginLogo">5<form@submit="onSubmit(true,$eve......