上架相关——App Store 上架流程

说实话,公司要上架一个自己做的一个小项目。为了完成这个任务,菜鸟的我一遍找资料一遍跟着做,一遍修改错误一遍查找解决方案。网上的资料大部分都是2015年以前的资料,资料有点不够过时,而且步骤配图也不是很详细,导致我花费了整整4天的工作日只为实现appstore上架。哎呀,也是够蛋疼的,appstore上架的每个流程都要确认无误,每一步的错误都会导致最终的失败。这个shit的操作,再也对你无爱了。

推荐一篇比较详细有用文章:

appStore上传苹果应用程序软件发布流程_iOS开发群雄_新浪博客

常见问题解决方案:

解决IOS开发证书“此证书的签发者无效”的问题_百度经验

ios app 上传时 ERROR ITMS-90096

解决Invalid Code Signing Entitlements 问题  -  lady-奕奕的个人空间 - 开源中国社区

好了,吐槽和发泄的话就少说,下面就正式进入Appstore上架流程了。

1.首先你的准备一个个人开发者账号、公司开发者账号。---我这里是公司开发者账号,是什么账号不要紧,因为只要有开发者(appstore发布应用)权限就可以了。

2.准备好Xcode以及要上架的项目。(Xcode最好是Xcode7.1以上的版本)--楼楼的Xcode版本就是7.1的。

3.进入苹果开发者官网:

developer.apple.com

点击account,如下图:


进入登录界面,登录


4. 登录之后,点击Certificates, Identifiers & Profiles,为项目创建Bundle ID 、发布证书、以及权限文件(Profiles)


进入Certificates, Identifiers & Profiles之后,点击App IDs-->"+"添加按钮, 为项目添加Bundle ID


进入创建APP IDs 的界面。

App ID Description 的name 可以随意填。


Bundle ID 最好的格式是:(如:com.cpmpany.yayade)。

这里Bundle ID是要和Xcode项目中的Bundle Id 一致的。(最好将项目中的Bundle Id复制过来)


如果有推送功能,要把“Push Notifications”勾选,反正就是项目用到什么功能或服务就把相应的选项勾选。


之后就是 continue -->register 完成注册bundle ID的工作

5.接下来就要请求证书。

找到mac 自带的“钥匙串访问”软件,钥匙串访问-->证书助理-->从证书颁发机构请求证书


之后在证书助理界面填写相关内容,并将保存到本地桌面。


如下图桌面上生成的.certSigningRequest证书


6.返回到之前的开发者网站:

Sign in with your Apple ID - Apple Developer

去生成发布证书。


点击 “+”按钮之后,出现以下内容界面,只需要选择“App Store and Ad Hoc” 即可,然后continue。


、、、、、、、、、、、、、、、、、、、、、、、

如果你发现Production  下面的  “App Store and Ad Hoc”不可选!!!

原因及解决方案:因为一个用户名下只能同时有一个发布证书,你之前建立了某个证书并且没有使用的话就无法再创建了,先把它撤销或者使用后才可以继续创建新的

、、、、、、、、、、、、、、、、、、、、、、、

两次continue之后,进入以下界面(如下图)

选择 “Choose File...”按钮 ,将我们刚刚生成的.certSigningRequest证书导入。--->continue--> downLoad-->Done


生成发布证书之后,下载(downLoad)-->找到下载的文件双击自动安装。

之后我们可以在“钥匙串访问”软件看到我们刚刚安装好的发布证书。


如果看到开发者证书无效。解决方案详见:http://my.oschina.net/sfandy/blog/617139?fromerr=OT2Ptq54

如果解决完“开发者证书无效”的问题就要将第6步操作重新做一遍,生成有效的证书。

7.生成profiles 证书



点击“+”之后


App ID : 选择含有对应Bundle Id 的app Id。



之后就是下载文件:downLoad-->找到下载的文件双击自动安装。

8. 进入ITunes Connect





创建成功之后会进入:


9.用Xcode打开你要上架的项目。


将 Release copy 改为 distribution,如下图。



选择我们刚刚的distribution


配置(1.)TARGETS里面的General的Bundle  Identifier,


(2.)TARGETS里面的Build Settings的Code Signing Identity

这里的Provisioning Profiles 选择我们生成的Profiles证书。


(3.)PROJECT里面的Build Settings的Code Signing Identity


10. Archive


archive时会遇到各种失败的情况:

(1.)


解决方案 :将三方框架重新导入一遍:即在终端执行:pod update 命令


(2.)ERROR ITMS-90096

解决方案:ios app 上传时 ERROR ITMS-90096

(3.)Invalid Code Signing Entitlements

解决方案:方案A.

解决Invalid Code Signing Entitlements 问题  -  lady-奕奕的个人空间 - 开源中国社区

方案B.Target或者是Project的Build Settings-->Code Signing Identity-->Provisioning Profiles  没有选择对应正确的Profiles证书

(4.)出现No matching provisioning profile found: Your build settings specify a provisioning profile with the UUID “7738acfb-4d92-4525-adbe-fb66e9957009”, however, no such provisioning profile was found错误提示

解决方案:

试一下这个吧。

Your build settings specify a provisioning profile with the UUID

如果archive成功了,就会出现:



如果UpLoad to App Store 出现以下错误:

(1.)


解决方案:重新upload to App Store.

11.UpLoad to App Store成功之后,回到ITunes Connect

完善app一些具体信息


注意:

构建版本会在你UpLoad to App Store成功之后的半个小时内,显示构建的版本。


半个小时之后就会出现如下(记得刷新该页面):



在构建版本处,出现上面内容之后,直接提交审核。


如果提交不成功出现一下错误:


解决方案:技术支持网站没有填写,把它填上就可以喽。


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

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

相关文章

this.$router 的三种跳转页面方法

第一种: this.$router.push(需要跳转到的路径名称)此方法跳转后,会在历史栏目中保存路劲地址,当点击历史标签时可以进行访问 第二种: this.$router.replace(需要跳转到的路径名称)此方法跳转后,会在历史栏目中不保存…

cf777c

题意:给你一个n*m的数阵 对于一行到另一行,若存在一列从上到下递减,则称之符合题意 The first line of the input contains two positive integers n and m (1 ≤ nm ≤ 100 000) — the number of rows and the number of columns in t…

上架相关——appstore 更新app版本

注:此片文章是基于app已经上架,也就是证书都已经配置好的前提下。 首先是还是app打包 修改版本号 修改project处的pp文件 检查无误后打包打包完成后upload to app store 漫长的等待。。 上传到appstore进入iTunesConnect 选择我的app 选择对应app点…

输入框输入数字,且不能有小数点存在

基于Vue项目进行设置 <template><comp v-if"update"></comp><button click"reload()">刷新comp组件</button></template><script>import comp from /views/comp.vueexport default {name: parentComp,data() {r…

iOS开发 蓝牙技术4.0详解

前言 前端时间,同学在做项目过程中遇到关于蓝牙方面的问题,今天我就给大家进行详细的进行讲解下蓝牙在iOS开发中的具体实现.在介绍蓝牙前,大家要搞清楚什么是蓝牙? 什么是蓝牙? 随着蓝牙低功耗技术BLE&#xff08;Bluetooth Low Energy&#xff09;的发展&#xff0c;蓝牙技术…

前端面试题(五)

position的属性有哪些&#xff1f; 1、absolute生成绝对定位的元素&#xff0c;相对于值不为 static的第一个父元素进行定位。 2、fixed &#xff08;老IE不支持&#xff09;生成绝对定位的元素&#xff0c;相对于浏览器窗口进行定位。 3、relative生成相对定位的元素&#xff…

qrcode.js 二维码生成器

二维码生成 并显示&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"ko" …

SQL -- 多表查询

-- --SQL基础-->多表查询 -- /* 一、多表查询 简言之&#xff0c;根据特定的连接条件从不同的表中获取所需的数据 笛卡尔集的产生条件&#xff1a; 省略连接条件 连接条件无效 第一个表中的所有行与第二个表中的所有行相连接 二、多表查询语法&#xff1a;*/ SELECT tab…

如何解决两个相邻的span中间有空隙

span中间不要有换行、或者空格 或者在样式上加上float&#xff1a;left转载于:https://www.cnblogs.com/lst619247/p/10944341.html

Vue项目中Table设置 render 函数

statusList1: {0: "",1: "",2: "药品服务费收入",3: "特药服务费收入",4: "直保经纪费",5: "再保经纪费",6: "广告费",},render: (h, params) > {return this.colorCommon(h, params.row, "1&q…

AVPlayer设置从哪儿开始播放

avplayer 播放视频 首先介绍几个方法吧和属性吧。 - (id)addPeriodicTimeObserverForInterval:(CMTime)interval queue:(dispatch_queue_t)queue usingBlock:(void (^)(CMTime time))block 这个方法可以用于跟新进度条。 - (void)seekToTime:(CMTime)time completionHandler:(v…

老男孩爬虫实战密训课第一季,2018.6,初识爬虫训练-实战1-爬取汽车之家新闻数据...

1.爬虫介绍 编写程序&#xff0c;根据URL获取网站信息 2.用到的库 requests库 bs4库 3.内容及步骤 4.代码 import requests import os from bs4 import BeautifulSoup # 1.下载页面 ret requests.get(urlhttps://www.autohome.com.cn/news/) ret.encoding ret.apparent_encod…

Table 表格导出功能

<Card class"clearfix"><p slot"title"><Icon type"ios-list"></Icon>收入信息</p><!-- 导出1 --><div class"daochu1"><!-- 导出按钮 --><div class"search"><B…

iOS开发 简单实现视频音频的边下边播

直接切入主题&#xff0c;要实现的功能是&#xff1a;1、ios视频音频边缓存边播放&#xff0c;缓存时可以在已下载的部分拖拽进度条。2、缓存到一半退出&#xff0c;再次播放同一地址的视频时&#xff0c;视频继续下载&#xff0c;并且缓存进度已经走到上一次下载的位置。3、无…

volatile的原理和实现机制

volatile到底如何保证可见性和禁止指令重排序的。 “观察加入volatile关键字和没有加入volatile关键字时所生成的汇编代码发现&#xff0c;加入volatile关键字时&#xff0c;会多出一个lock前缀指令” lock前缀指令实际上相当于一个内存屏障&#xff08;也成内存栅栏&#xff0…

Table城市代码翻译

// data 数据变量 eara&#xff1a;[]// 接口调用 getChinaList() {return fetch({url: "/api/v1/china/city/search",method: "GET"});},// table 栏中的 render 函数 render: (h, params) > {return h("span",this.dictCodesCommon(params.…

iOS中的WiFi与硬件通信

WiFi通信是指手机通过WiFi与外部设备建立连接&#xff0c;并与外部设备进行交互、通信。手机与外部设备的WiFi通信通常是使用Socket来实现的&#xff0c;在这里先介绍一个第三方Socket库&#xff08;CocoaAsyncSocket&#xff09;来实现WiFi通信。 CocoaAsyncSocket支持TCP和U…

MongoDB查询报错:class com.mongodb.MongoSecurityException: Exception authenticating MongoCredential...

异常日志&#xff1a; 2019-05-30 10:10:24,252 [http-nio-8080-exec-1] DEBUG [java.sql.Connection] - ooo Connection Opened 2019-05-30 10:10:24,258 [http-nio-8080-exec-1] DEBUG [java.sql.PreparedStatement] - > Executing: insert into client_config ( appid, …

动态添加后的数据转换 — 后台接收数据

let data this.projectPersonnel.map(item > {let obj {}obj.member item.people.map(info > {return info.id})obj.member JSON.stringify(obj.member)obj.projectId idobj.teamId item.name.idreturn obj})

iOS开发--地图与定位

iOS开发--地图与定位 概览 现在很多社交、电商、团购应用都引入了地图和定位功能&#xff0c;似乎地图功能不再是地图应用和导航应用所特有的。的确&#xff0c;有了地图和定位功能确实让我们的生活更加丰富多彩&#xff0c;极大的改变了我们的生活方式。例如你到了一个陌生的地…