iOS开发之 xcode6 APP 打包提交审核详细步骤
一、
在xcode6.1和ios10.10.1环境下实现app发布
http://blog.csdn.net/mad1989/article/details/8167529
http://jingyan.baidu.com/article/f25ef25477db8b482d1b8252.html
http://blog.sina.com.cn/s/blog_6ca8877f0101g2u0.html
二、
iOS APP 打包提交审核详细步骤
(1) 要明确的几个概念 Certification、Provisioning、Keychain、APP IDs概述
1. Certification(证书)
证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:
1) DeveloperCertification(开发证书)
安装在电脑上提供权限:开发人员通过设备进行真机测试。
可以生成副本供多台电脑安装;
2) DistributionCertification(发布证书)
安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。
不可生成副本,仅有配置该证书的电脑才可使用;
2. Provisioning Profile(授权文件)
授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App Id,即使被授权的设备可以安装或调试Bundleidentifier与授权文件中记录的App Id对应的程序。
开发者帐号在创建授权文件时候会选择App Id,(开发者帐号下App Id中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。
授权文件分为两种,对应相应的证书使用:
1) Developer ProvisioningProfile(开发授权文件)
在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;连接调试的设备的UDID在选中的授权文件中有记录。
2) DistributionProvisioning Profile(发布授权文件)
在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。
发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID;
测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择AppId和UDID;只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。
3. Keychain(开发密钥)
安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。DeveloperCertification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。
注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。
3. APP IDs(应用程序标示符)
通常是使用 com.域名.应用程序名 这样的反向域样式。此标识符必须唯一并且不会与苹果公司系统中已注册的任何其他应用程序标识符冲突。
推送服务应用程序不能使用统配标识符,每个启用了推送服务的应用程序都要求有一个唯一的标识符。
(2)要准备的几个工作
1: iTunes 图标 : 1024px x 1024px (required)
2: 屏幕截图 :(用Xcode截图,图片不能勾选alpha)
3: 元数据 : 在提交应用之前,要管理好app的元数据,
包括1应用名称、2版本号、3主要类别,4简洁的描述,5关键词,6.支持URL。如果你需要更新应用,你还要 提供新增加的版本内容。
4: 测试账户或者demo账户,这样审核人员就能很快进入app,而不用再注册账号。
5: 友盟url版本
1. 申请 App ID
(1) 连到 Developer 网页 ( http://developer.apple.com )。并登录到苹果MemberCenter
(2) 进入 iOS Provisioning Portal。所有证书相关的都在这里进行
(3) 申App IDs,我们先创建一个AppId:点选左侧的 App IDs。
(4) 点选右上角的 New App ID。
(5) Description : 输入 app name。
Bundle Seed ID (App ID Prefix ) : 选 Generate New。
Bundle Identifier (App ID Suffix ) : 输入 com.companyname.(app name),Ex: com.taolewireless.myDemo。
(6) 填完后submit,如下图,可以看见我们已经生成的appid:ebook appid。想要支持推送服务和iCould等也可以在这儿配置:

(7) 在 App IDs 页面,即可看到一组写着 appname 的Description。
2. 申请 DistributionProvisioning Profiles 申请发布授权证书
2.1、先创建一个证书请求文件
首先打开应用程序-实用工具-钥匙串访问(KEY CHAIN),在证书助理中,选择"从证书颁发机构求证书",如下图:

在下图所示的界面,你的电子邮件地址:填你申请idp的电子邮件地址,常用名称,默认就好,CA空,选择存贮到磁盘,点击"继续":

选择保存的位置,比如选择桌面。

下一步点击完成,你就可以看到你的桌面多了一个CertificateSigningRequest.certSigningRequest的证书请求文件。
(1) 在 iOS Provisioning Portal 页面,点选左侧的 Provisioning。
(2) 点选上面的 Distribution tab。
(3) 点选右上方的 New Profile。
(4) Distribution Method 选 App Store。
Profile Name 输入 TaoleWireless_myDemo_Distribution。
(5) 点选 submit。
(6) 在 Distribution Provisioning Profiles 页面可看到多出一组名为 TaoleWireless_myDemo_DistributionProfile。
(7) 过一分后重新整理网页,点 Download Provisioning Profile。
(8) 开启 Xcode -> Window -> Organizer。
(9) 点选左下的 Profisioning Profiles。
(10) 将 (7) 下载的profile 拖拉到 Xcode的Organizer 画面。
3. iTunes Connect New App
(1) 连到 iTunes Connect 网页 (http://itunesconnect.apple.com)。
(2) 点选右边中间的 Manage Your Applications。
(3) 点选左上方的 Add New App。
(4) App Name 输入 app name,Ex: myDemo。
SKU Number 输入 yyyyMMdd。
Bundle ID 选 app 后,按Continue。
(5) 选日期、价格后 Continue。
(6) Version Number 输入 1.0.0。
Description 输入 ….
Primary Category
Secondary Category
Keywords
Copyright: @2011 TaoleWireless All Rights Reserved.
Contact Email Address: 输入上传人员的 email。
…
(7) 点选 Ready to Upload Binary。
三、Xcode配置
(1)、

(2)
Xcode中target的build settings了。
1、配置App ID、distribution certificate 和provisioning profile已经完成,是时候配置Xcode中target的build settings了。在Xcode Project Navigator的targets列表中选择一个target,打开顶部的Build Settings选项,然后更新一下Code Signing来跟之前创建的distribution provisioning profile相匹配。最近添加的provisioning profiles有时候不会立马就在build settings的Code Signing中看到,重启一下Xcode就可以解决这个问题。

2. 上传二进制文件
为了上传程序,需要为程序创建一个archive。你只能在一台真实设备上创建一个archive。如果你在active scheme中选择了iOS Simulator,那么在Xcode的Product菜单中Archive选项是灰色不可选的。连接一台iOS设备到Mac机器上,然后在active scheme中选择这台设备,然后选择Xcode中Product菜单里面的Archive。

选中项目名称,设备改为ios Device(我们不需要使用模拟器或真机来build打包),然后选择 edit Scheme(如上截图)

此界面顶部要确定选中的是你的项目名称和iosDivice设备;左边栏选中Archive,右边的内容为以上视图。点击ok。(如上截图)

此时大功告成,在xcode-Product菜单选中build一下(快捷键command+B),然后再点击Archive。(如上截图)两个都成功的话,就继续下一步,否则请检查两个证书的配置。
如果一切正常的话,现在你会获得一个archive,并且Xcode的Organizer会自动打开,并显示出刚刚生成的archive。在列表中选中archive,然后点击右边的“Distribute”按钮。在显示出来的画面中,选择“Submit tothe iOS App Store”。然后输入你的iOS开发者账号进行认证。接着选择Application 和Code Signing Identity。
应用程序的二进制文件会上传到苹果的服务器中——在这个过程中,你的程序同样需要被验证。如果在验证过程中遇到了错误,程序的提交流程就会失败。验证处理非常有用,如果程序中有一些错误,苹果的 App Store评审团会告诉你具体原因。

Archive成功后,就会在Organizer界面生成我们的应用,进入后可以看到软件详细信息,这个identifier一定要和我们第三步网页上的一致。
iOS开发之 xcode6 APP 打包提交审核详细步骤的更多相关文章
- APP打包提交审核的步骤
- iOS开发之 Xcode6 添加xib文件,去掉storyboard的hello world应用
iOS开发之 Xcode6.1创建仅xib文件,无storyboard的hello world应用 由于Xcode6之后,默认创建storyboard而非xib文件,而作为初学,了解xib的加载原理 ...
- iOS 开发之 Xcode6 打包生成ipa给测试
Xcode 6正式版Version 6.0.1 (6A317)已经放出Mac AppStore,之前为了体验swift也安装过beta版,但是并没有注意到6系Xcode对于导出ipa的变化,更新正式版 ...
- iOS 开发之 Xcode6 创建真机调试证书
http://jingyan.baidu.com/article/ff411625b8141312e48237a7.html 1.登录苹果开发者中心 2.登录后的界面如图所示,如果没有最上面的两个选项 ...
- iOS开发之 XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效)
参考:http://mobile.51cto.com/iphone-455500.htm XCode6.0的iOS免证书真机测试方法(MAC及黑苹果均有效) 前提:设备已经越狱 目前在XCode上开发 ...
- ios 开发之 Xcode6 No valid signing identities (i.e. certificate and private key pair) matching...
之前的项目用证书真机测试过,我想再无证书Build,出现下面的报错提示! 下面的team我无法改成None!一点击None选的还是Unhonw name(JPGE28K3W9)这个是报错的关键 最后由 ...
- iOS开发之Xcode6 之手动添加Pch预编译文件
参考文档 http://blog.csdn.net/crazyzhang1990/article/details/44243343 红色部分为本人自己补充注意事项 在Xcode6之前,创建一个新工程x ...
- ios开发之xcode6中如何添加pch全局引用文件
xcode6中去掉了默认添加pch文件,这就需要我们自己手动添加pch文件了,添加pch文件是为了一些琐碎的头文件引用,加快编译速度! 下面就说下该如何手动添加pch文件: 1.添加一个文件,在oth ...
- iOS 开发之 Xcode6 installation failed invalid argument!
1.运行模拟器的时候 报出: installation failed invalid argument! 原因分析: 我把Bundle indentifier 置为空了! http://stackov ...
随机推荐
- YTU 2990: 链表的基本运算(线性表)
2990: 链表的基本运算(线性表) 时间限制: 1 Sec 内存限制: 128 MB 提交: 1 解决: 1 题目描述 编写一个程序,实现链表的各种基本运算(假设顺序表的元素类型为char),主 ...
- Mybatis用法小结
select 1.基本用法 <select id="selectTableOne" resultType="com.test.entity.tableOne&quo ...
- 过滤器Filter(拦截jsp页面的跳转)案例:
创建一个 Filter , class类: 其继承于 接口 Filte(接口导包:import javax.servlet.Filter;) 在 web.xml 文件中配置并映射该 Filter. 其 ...
- River Hopscotch(二分POJ3258)
River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9263 Accepted: 3994 Descr ...
- Oracle插入时间
现象:Oracle 插入时间时 ,报错:ORA-01861: 文字与格式字符串不匹配 解决方法: 这个错误一般出现在时间字段上,即你插入的时间格式和数据库现有的时间格式不一致,解决的方法是格式化你 插 ...
- JAVA学习随笔-.class
类名.class是获得这个类所对应的Class实例.从面向对象的角度上来看,类也是对象,它们是类这个类对象,听起来有些抽象,但是在java中的实现就是所有的加载进来的类在虚拟机中都是一个java.la ...
- Combox控件初始化项的技巧
有时候combox下拉项就是几条固定的,不需要做数据绑定,但是如果直接采用字符串集合编辑器的时候,SelectedValue貌似会不起作用. 于是简单的封装一下 /// <summary> ...
- 模块shimgvw.dll已加载,但找不到入口点DllRegisterServer
[环境]Windows 7 / Windows Server 2008 [现象]在文件夹浏览器中不能显示图片缩略图. [错误信息]查系统日志,有如下消息:“模块shimgvw.dll已加载,但找不到入 ...
- 华东交通大学2016年ACM“双基”程序设计竞赛 1002
Problem Description 今天小学弟又训练完了,但是小学弟又不想看球赛,于是小学弟看马赛了.他发现马鞍是一个奇怪的东西.于是小学弟根据马鞍定义了一种马鞍数:在一个二位矩阵中,马鞍数在当前 ...
- Prompt isNaN 数组 function DOM window.open/close/location/history
1.prompt的利用 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defa ...