转自:

http://blog.sina.com.cn/s/blog_68444e230100srdn.html

iOS程序发布测试3-生成ad hoc证书

iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的;1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书。

那ad hoc证书和开发证书区别在哪里?如果你的tester(团队测试人员、客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有开发证书就够了,不需要ad hoc证书。

如果tester的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的tester,让他通过itunes进行安装,那就需要ad hoc证书了。

具体的区别,我们先看看ad hoc证书生成过程,和开发证书生成非常类似。

1、进入Provisioning Portal主界面

(如何进入Provisioning Portal主界面,可以参考“iOS程序发布测试2-获取Tester设备UDID”)

2、选择Provisioning,然后选择Distribution


这是开发证书和发布证书生成时的一个区别,在文章“iOS程序发布测试4-打包(Archive)发布(share)”中会说到使用的区别。

3、选择“New Profile”,出现新建发布证书界面


选择“Ad Hoc”,然后选择Tester的设备ID(如何获取和添加Tester设备ID,见“iOS程序发布测试3-获取Tester设备UDID”)。

4、下载证书到本地


点击“Download”,将证书下到本地。

注:如果status是“pending”,刷新一下就成“Active”了。

5、导入证书。双击,出现Xcode(我这里是4.0)provisioning界面

证书生成好,而且导入了,接下来就是打包(Archive)和发布(share)了。

iOS程序发布测试4-打包(Archive)发布(share)

发布测试的最后一步打包(Archive)

Xcode4帮助文档有比较详细介绍,但是居然是错的,这里说明一下

1、设置“Build Settings”,下图是官方文档截图,留意那个红框,居然说反了

"Skip install"一定要选NO,否则在下面的打包步骤后,Organizer看不到你的程序,就为这折腾我好些时间,国外论坛一堆问题,说我按照官方文档做了,怎么Organizer看不到程序。

 1.1 选择ad hoc证书.在“Code Signing”栏,选择你在文章(“iOS程序发布测试3-生成ad hoc证书”)生成的发布证书(ad hoc)

这里要选择“iPhone Distribution”,而不是“iPhone Development”,否则会在下面打包(Archive)步骤报证书错误。

2、编辑“Scheme”,选择菜单:Product -> Edit Scheme

红色框部分要选对,注意要分别选iOS Device和Release。

3、打包(Archive),选择菜单:Product->Archive,在organizer窗口可以看到你的程序

然后点击“share”按钮,进行发布(share)

 

4、Share

选第一个“iOS App Store Package”,生成.ipa文件,你的Tester使用itunes即可安装。

最后一个Archive,需要对方安装xcode。

iOS程序发布测试-生成ad hoc证书的更多相关文章

  1. ios程序发布测试打包

    1. 获取测试机UDID 手机连接电脑,打开iTunes-摘要-点击序列号,设备概要界面显示设备udid-反键-拷贝 2. 添加设备 取得UDID后,进入开发者中心-iOS PRovisioning ...

  2. ios 程序发布使用xcode工具Application Loader 正在通过ITUNES STORE进行鉴定错误

    ios 程序发布使用xcode工具Application Loader 正在通过ITUNES STORE进行鉴定错误 一:此错误会导致上传程序,一直停留在验证阶段,而没有一点上传进度:结果会苦等半天, ...

  3. iOS 开发 入门:使用Ad Hoc 进行用户测试

    在完成iOS开发,准备进行发布之前,我们都希望App能在周围的朋友之间先进行测 试,提提意见,修改完善之后再发布到App Store上.Apple考虑到这一点,因此通过Ad Hoc来实现发布前的用户测 ...

  4. iOS程序发布时出现your application is being uploaded解决办法

    当用Xcode发布app时候出现“your application is being uploaded”或者用Application Loader 一直出现“ 正在通过ITUNES STORE进行鉴定 ...

  5. ios开发 ad hoc

    iOS证书分2种,1种是开发证书,用来给你(开发人员)做真机测试的:1种是发布证书,发布证书又分发布到app store的(这里不提及)和发布测试的ad hoc证书. 那ad hoc证书和开发证书区别 ...

  6. ios开发 ad hoc怎么用

    简单的说就是这样 ad hoc 方式是苹果用来给未上线的app做测试用的,首先你要在苹果开发平台上申请一个ad hoc的证书,再在profile中生成一个ad hoc 的profile文件(只需要在生 ...

  7. iOS 程序打包,安装流程

    一.发布测试,是指将你的程序给   * 你的测试人员,因为程序总归是要测试的   * 你的客户,在正式发布之前,客户肯定是要先看(验收)的 在他们的iOS设备(iphone,ipod, ipad)安装 ...

  8. Ios 程序封装,安装流程

    转:http://www.myexception.cn/operating-system/1436560.html Ios 程序打包,安装流程 一.发布测试,是指将你的程序给   * 你的测试人员,因 ...

  9. ios 8+ (xcode 6.0 +)应用程序Ad Hoc 发布前多设备测试流程详解

    我们开发的程序在经过simulator以及自己的iOS设备测试后,也基本完成应用程序了,这时候我们就可以把它发布出去了更更多的人去测试,我们可以在iOS平台使用ad hoc实现. 你在苹果购买的开发者 ...

随机推荐

  1. HDU 1611 敌兵布阵【线段树模板】

    #include<cstdio> #include<string> #include<cstdlib> #include<cmath> #include ...

  2. ZOJ 3781 Paint the Grid Reloaded

    枚举,$BFS$,连通块缩点. 可以枚举一开始染哪个位置,然后逐层往外染色,看最多需要多少操作次数,也就是算最短距离.连通块缩点之后可以保证是一个黑白相间的图,且每条边的费用均为$1$,$BFS$即可 ...

  3. 洛谷P4145 上帝造题的七分钟2/花神游历各国 [树状数组,并查集]

    题目传送门 题目背景 XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列. 第二分钟,L说,要能修改,于是 ...

  4. Bzoj2818 Gcd(莫比乌斯反演)

    题面 题意都在题目里面了 题解 你可以把题意看成这个东西 $$ \sum_{i=1}^n\sum_{j=1}^m\mathbf f(gcd(i,j)) $$ 其中$\mathbf f(n)$为$是否是 ...

  5. 洛谷——P2141 珠心算测验

    P2141 珠心算测验 题目描述 珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术.珠心算训练,既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及. 某学校的珠心算老师 ...

  6. shell 倒引号

    `command` 倒引号 (backticks) 在前面的单双引号,括住的是字串,但如果该字串是一列命令列,会怎样?答案是不会执行.要处理这种情况,我们得用倒单引号来做. fdv=`date +%F ...

  7. ActiveMQ 认证(一)

    新搭建的ActiveMQ服务,在发布和读取消息时,连接的权限为ActiveMQConnection.DEFAULT_USER和ActiveMQConnection.DEFAULT_PASSWORD. ...

  8. 背包问题(dp基础)

    题目描述: 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数).求背包能够容纳的最大价值. Input 第1 ...

  9. import 和 export -- ES6

    例子: 最后返回的结果是: { default: function fn2(){ }, foo2: 1, test3: { default: function fn3(){ }, foo3: 1 } ...

  10. ES5 的 Array

    1: Array.isArray判断是否为数组 Array.isArray([1, 2, 3]); // true Array.isArray({foo: 123}); // false // Pol ...