当前位置: 首页 > 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 安装…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库&#xff0c;专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性&#xff0c;并提供了一个通用的框架&…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

Linux基础开发工具——vim工具

文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...