当前位置: 首页 > news >正文

iOS App的打包和上架流程

  转载:iOS App的打包和上架流程 - 掘金

1. 创建账号

苹果开发者账号几种开发者账号类型

个人开发者账号

  1. 费用:99 美元/年(688.00元)
  2. 协作人数:仅限开发者自己
  3. 不需要填写公司的邓百氏编码( D-U-N-S Number)
  4. 支持账号下的 app 上线 App Store
  5. 需要创建 Apple ID

公司开发者账号:

  1. 费用:99 美元/年(688.00元)
  2. 允许多个开发者协作开发
  3. 需要填写公司的邓百氏编码( D-U-N-S Number)
  4. 该账号下的 app 可上线至 App Store
  5. 需要创建 Apple ID

企业开发者账号:

  1. 费用:299 美元/年(1988.00元)
  2. 允许多个开发者协作开发
  3. 需要填写公司的邓百氏编码( D-U-N-S Number)
  4. 该账号下的 app 不能发布到 App Store 中
  5. 需要创建 Apple ID
  6. 注:企业账号申请特别困难

申请 AppleID

申请 Apple ID 

注册时填写的主要信息:姓氏、名字、国家、出生日期、邮箱、密码、密码保护问题、图片验证码,邮箱验证码。注意填写的内容必须为全英文,不得出现中文。

注册完成以后记得登陆apple设备开启双重验证

申请邓白氏码(个人开发者账号不需要)

打开 查找D-U-N-S 编号 

申请华夏邓白氏需要填写的表单信息

  • 公司英文名
  • 街道
  • 城市
  • 邮编
  • 联系电话
  • 联系人信息:姓名,电话(有可能打电话确认),邮箱(与华夏邓白氏交流的邮箱,收到确认邮件及时填写公司信息有时间限制,)
  • 营业执照
  • 公章

等待邓白氏申请成功

编码申请成功后,邓白氏公司会把DUNS编码发送到workEmail邮箱中,等待7-14天使用就好了(苹果和邓白氏公司不是一个系统,需要等待他们数据同步)

DUNS编码申请成功后,等待7个工作日(注意不是一个礼拜~)再去继续申请公司开发者账号吧!

申请开发者账号

  1. 直接在App Store搜索开发者app,登陆你上面申请的Apple ID即可(现支持微信、支付宝支付)

  1. 或者去Apple ID官网 Apple ID  进行申请
  • 后面申请主要按照提示,给个人信息、身份验证等
  • 如果是公司还需要公司的一些基本信息+DUNS编码
  • 基本上到这里等待申请成功基本就ok了,现在(2021-09)申请基本信息没问题一天就ok了

2. 申请签名证书(钥匙串访问)

  • 意义就是签名,也是因为有Apple特有的签名机制,让app更为安全的
  1. 打开 Mac app 的钥匙串访问

  1. 颁发证书

  1. 以下两个信息可以随便填(主要是做一个标识)

  1. 直接存储到磁盘,直接是一个 CertificateSigningRequest.certSigningRequest 这样的文件即可

3. 先在  Apple Developer  申请证书

  1. 登陆开发者账号
  2. 进入到account页面

  1. 先创建ID

我们主要是发布 App Store的app,选第一个就够了

  1. 创建证书 -证书我们做iOS应用下面两个就够用,其他就是Mac app 通用证书等。

  1. 创建证书下一步就要选取我们钥匙串申请的文件上传就好了

我们可以看到

一般的方法是申请到.cer证书然后再用钥匙串助手转换p12,需要用到苹果Mac电脑,过程比较复杂。Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!无需钥匙密钥。

IOS证书制作教程

点击苹果证书 按钮



 

点击新增


 

输入证书密码,名称

这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。
证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类


 

选择证书类型

 带distribution的是发布类型,带development的是开发类型。apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的 


 

选择bundle ID

只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。


 

使用appuploader服务同步

如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。


 

证书类型说明

IOS开发选择apple development或者ios app development 类型
ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc)
开发推送证书选择 apple push notification service ssl (sandbox)
发布推送证书选择 apple push notification service ssl (sandbox & production)

其他证书不是很常用,可以自行百度各种证书说明

回复

  1. 配置文件,顾名思义就是配置正式环境和测试环境的配置文件,比如配置推送等

选中我们上面创建的ID

选中申请的证书(关联)

如果你是新账号,第一次创建开发者证书,还需上传device ID,就是你要测试的手机

用数据线,连上Xcode,在devices里查看 identifier

  1. 创建证书、配置文件、id、device基本到这里就完成了,后面需要吧证书和配置文件下载下来双击安装;证书会安装到钥匙串,配饰文件是安装到xcode,就是证书和Xcode关联的bundle ID的app建立证书关系

  2. 在xcode里选中你配置的文件,即可运行你的app这真机上

小技巧

在创建id 的时候可以创建通配符 、或者直接写一个,代表任意app,避免,每一次我们该一个包名需要测试的时候都要去创建了一个id

当然在最新的xcode 中,也可以直接 fixed

4. 在 App Store Connect  创建app

如果需要申请内购,需要在协议、银行信息里填写银行卡相关信息

我的app去创建app

基本信息

  • 标题
  • 副标题
  • 分类
  • 评级

价格于销售范围

  • 销售的地区可供选择
  • 设置App Store的价格

在准备提交里需要填写App Store需要展示的信息

  • 预览图
  • logo
  • 描述
  • 一些审核信息

如果需要申请内购需要点击申请内购信息

  • 名称
  • id 唯一标识,代码中通过这个查到当前那个
  • 弹出窗口展示的信息
  • 内购审核信息

如果需要测试内购信息,需要注册沙盒测试账号

  • 填写基本信息,一个沙盒测试账号只能在一个开发者账号下使用

设置完成去看电子邮箱里,直接点击链接去完成就ok了

登陆你设置的密码,继续即可

验证成功就可以使用你的沙盒账号测试内购了

5. XCode 打包上架

直接打包,主要配置的bundle id 需要和开发者中设置的一样,版本号也要和App Store connect里设置的一样

最后在你构建完成,去App Store connect 查看添加构建的版本,提交审核即可

ending 大功告成,等待审核通过吧~

相关文章:

iOS App的打包和上架流程

转载:iOS App的打包和上架流程 - 掘金 1. 创建账号 苹果开发者账号几种开发者账号类型 个人开发者账号 费用:99 美元/年(688.00元)协作人数:仅限开发者自己不需要填写公司的邓百氏编码( D-U-N-S Number…...

Net6中遇到的一个很奇葩的问题

先来看一段代码,是控制台应用程序 internal class Program{static void Main(string[] args){Test().Wait();}private static async Task Test(){await Task.Run(() >{Debug.WriteLine("线程内输出");});Debug.WriteLine("线程外输出");}}执…...

2940. 花坛的最小改变次数

Powered by:NEFU AB-IN Link 文章目录 2940. 花坛的最小改变次数题意思路代码 2940. 花坛的最小改变次数 题意 略 思路 首先需要区间查询gcd,想到st表 其次思路,固定左端点,二分右端点,找gcd与区间长度相等的右端点,个…...

安装源代码 QT 4.8.7

在centos7.9.2009 (Core)操作系统上,安装qt 4.8.7 查看centos版本:cat /etc/centos-release 安装g:sudo yum install gcc gcc-c g版本查看(gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)):g -v 先安装…...

PINN学习与实验之拟合sin(x)

首先给出数学上的知识。 1. 2. 3. 其次给出PINN最基础的理解与应用说明。 1.PINN中的MLP多层感知机的作用? 答:目的是用来拟合出我们需要的那个 常微分方程,即函数逼近器。 2.PINN中物理信息的作用? 答:用于约束MLP反向…...

Java中进制转换的两种方法你知道吗?

目录 十进制转其他进制 其他进制转十进制 实战: A进制转B进制 关于大数运算可以参考躲不掉的高精度计算,蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客 十进制转其他进制 使用 Integer.toString(int n,int radix) 方法,该方法…...

Qemu搭建ARM Vexpress开发环境

Qemu搭建ARM Vexpress开发环境 文章目录 Qemu搭建ARM Vexpress开发环境Qemu简介QEMU安装前的准备工作QEMU 安装的两种方式通过网络在线安装源码编译安装源码获取QEMU依赖库安装编译安装 命令选项qemu的标准选项qemu显示选项网络属性相关选项kvm的网络模型 Ubuntu 双网卡&#x…...

JMM如何实现volatile写/读的内存语义

内存屏障类型表 StoreLoad Barriers是一个“全能型”的屏障,它同时具有其他3个屏障的效果。现代的多处理器大多支持该屏障(其他类型的屏障不一定被所有处理器支持)。执行该屏障开销会很昂贵,因为当前处理器通常要把写缓冲区中的数…...

Smali的使用技巧:快速定位Android应用程序中的关键代码

简述 Smali是一种Android应用程序的Dalvik虚拟机指令集汇编语言,用于编写和修改应用程序的DEX文件。通过编写和修改Smali代码,可以实现对Android应用程序的定制化和逆向分析。Smali语言类似于汇编语言,直接操作Dalvik虚拟机指令集。 Smali代…...

04_两种常见的网页反爬措施及应对方法

一、封禁IP地址反爬 1、应对思路: 理解这种反爬方法的含义:当我们用自己电脑的ip地址短时间,高频率访问某个具有此类反爬设置的网站,这种网站就会把我们的ip地址封禁,一般都是封24小时或者其他时间。解决方案:通过代理ip访问,这种方式只不过就是让你有了重新访问网页的…...

安装docker环境,并制作docker镜像

docker环境安装 进入linux虚机后,安装docker环境,制作docker镜像并运行,进入运行中的容器,查看挂载的日志或报告 1.安装docker sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2.使用docker仓库安装…...

MySQL数据库 – node使用

1 MySQL查询对象 2 MySQL查询数组 3 mysql2库介绍使用 4 mysql2预处理语句 5 mysql2连接池使用 6 mysql2的Promi 这里仅说明如何使用服务器连接数据库并进行操作。 预处理语句就是可以输入变量的语句(表现形式是有符号:?)。需…...

JAVA使用HTTP代码示例模板

以下是一个使用Java发送HTTP请求的示例代码: java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpExample { public static void main(String[] args) { try…...

elementui tree 支持虚拟滚动和treeLine (下)

​ 由于我之前没有发布过npm 包,这里还得现学一下。 参考资料: 链接: 如何写一个vue组件发布到npm,包教包会,保姆级教学链接: vue组件发布npm最佳实践 按照上面的步骤,我通过 vue-sfc-rollup 生成了项目,…...

富人父母都教给孩子什么样的财富思维?

1.认清金钱的价值和作用,不要否认或忽视它对生活的影响。 2.提高社交能力,学会与不同的人沟通和合作,扩大人脉和资源。 3.理性消费,让钱在流动中产生效益,而不是囤积或浪费。 4.释放自己的欲望,追求自己想要…...

国内比较火的报表工具测评——Smartbi电子表格软件和Finereport

最近在学习BI软件,因为最近工作中需要开发报表,因此选用了国内市场比较热门的报表工具——Finereport和Spreadsheet进行学习。 BI软件经常会定期发布新的版本,增加新的功能模块,或者对现有功能进行增强,提升运行效率。…...

变电所运维云平台在电力系统中的应用

安科瑞虞佳豪 变电所运维云平台可以看做是电力监控系统的网络应用延伸,变电所运维云平台通过互联网,电力运维人员通过手机可以随时随地了解工厂配电系统的运行情况,做到无人值守或者少人值守,同时可以监测用能状况、漏电、线缆异…...

【51单片机】AT24C20数据帧(I2C总线)

🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 小吉先向大家道个歉,因为最近在期末…...

Python内置函数isinstance()函数介绍

Python内置函数isinstance()函数介绍 isinstance() 函数是Python内置函数,来判断一个对象是否是一个已知的类型,返回值为布尔值True或False。其语法格式: isinstance(object, classinfo) 【官方说法https://docs.python.org/zh-cn/3/librar…...

QxRibbon 知:搭建 CMake 构建环境

文章目录 前言安装 cmake问题处理qtcreator 检测 CMake 异常 参考资料 前言 高版本的 QtCreator 已经集成了 cmake 工具,并支持以 CMakelists.txt 文件作为工程开发项目。 https://www.qt.io/blog/2019/07/30/update-on-cmake-project-support-in-qt-creator 安装…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...

计算机基础知识解析:从应用到架构的全面拆解

目录 前言 1、 计算机的应用领域&#xff1a;无处不在的数字助手 2、 计算机的进化史&#xff1a;从算盘到量子计算 3、计算机的分类&#xff1a;不止 “台式机和笔记本” 4、计算机的组件&#xff1a;硬件与软件的协同 4.1 硬件&#xff1a;五大核心部件 4.2 软件&#…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面&#xff0c;接口成功记录日志&#xff0c;失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...