xcode打包测试
- 模拟器的内存cpu网络,都是电脑的。xcode可以查看。
- Xcode7之前是限制人,限制电脑,限制app,限制真机调试的。
- Xcode7之后,做真机测试只需要apple id即可,会自动生成证书。
- Xcode7之前限制人:
- .必须拥有apple id(免费的)
- .加入开发者计划,升级为开发者账号
- .开发者账号分类:个人账号688(可以真机测试,打包测试,程序发布,-3天),公司账号688(可以真机测试,打包测试,程序发布,需要邓白氏认证,30天左右),企业账号1688(可以真机测试,打包测试,企业内部安装,需要邓白氏认证,30天左右,不能发布到appstore)
- Xcode7之前:
- .限制人:申请appid,如图。得到开发者账号。
- .限制电脑:使用需要真机调试的电脑生成CSR文件(证书签名请求文件,每台电脑不一样,可以识别不一样的电脑),用申请的开发者账号登录,点击Certificates,Identifiers & Profiles,
- Certificates:限制电脑的。Identifiers:限制app的。Devices:限制真机手机的。Provisioning Profiles:根据前面3项生成一个描述文件,用于调试时验证。
- Development:开发时的证书。Production:发布时的证书。
- .certSigningRequest就是CSR文件。
- 通过CSR文件文件生成一个.cer文件,这样限制电脑就完成了(cer文件是跟电脑相关的)。
- .限制APP:通过app的BundleID(Bundle Identifier)(app的唯一标示)限制app。点击Identifiers->App IDs,点击加号,Explicit App ID(明确的id),Wildcard App ID(模糊的id,通过通配符,*),App Services(当前app可以有哪些服务)。
- .限制真机手机:每一个苹果真机都有UDID,设备的识别码。点击Devices---All---加号(Xcode可以查看真机的Identifier),Register Device填入真机的UDID(Identifier).
- .根据前面三项生成一个描述文件(.mobileprovision)(在本地验证各项是否正确),如图。
- 以上生成的.cer和.mobileprovision文件有用。.cer文件拖到"钥匙串访问---登录---证书"里面去。双击.mobileprovision安装,这个文件安装的位置(前往---资源库---MobileDevice)
- 真机调试:Build Setting----Code Signing----Provisioning Profile(描述文件),Code Signing Identity(cer文件),General---Identity----Team选为none。 (.p12是cer文件的复印件,.p12文件和描述文件.mobileprovision也可以进行真机调试,描述文件拷贝是可以用的,但是证书cer文件拷贝也用不了,cer文件是跟电脑相关的)。
- Xcode7之后的真机调试:Xcode偏好设置---账号---add apple id(免费的账号,登陆后需要加入开发者账号,join the Apple Developer Program)---直接运行,会自动生成描述文件和证书,手机设置---通用---设备管理---信任一个账号。
- 常见问题,如资料。
- 打包测试:将项目打包成.ipa的压缩包,供指定设备安装测试,给客户展示和测试人员测试,就是打包测试。
- 打包测试:限制人(买个账号),限制电脑,限制app,限制真机,生成描述文件,安装证书和描述文件,打包成ipa包,安装测试。
- 登陆开发者账号,点击Certificates,Identifiers & Profiles,左边限制电脑,限制app,限制真机。
- .点击限制电脑的Certificates,点击加号,打包测试算是Production---App Store and Ad Hoc----继续---创建CSR文件(搜索KEYchain-钥匙串访问-证书助理-从证书颁发机构请求证书-存储到磁盘)---继续---上传刚才生产的csr文件---生成下载cer文件到本地。
- .点击限制appid---App IDs---加号---描述随便写---选择精确模糊的id---继续。
- .限制设备,Devices---All---加号---UDID(Xcode-window-devices).
- .描述文件,Provisioning Profiles---All---Distribution---Ad Hoc---选择所有真机设备---下载描述文件。
- .双击安装cer文件和描述文件。(cer文件安装在钥匙串里面,描述文件安装在资源库-MobileDevice里面)
- .创建一个项目,修改Bunldle Identifier为刚才的id和Build Setting--code sign,修改Provisioning Profile和Code Signing Identity,修改Team为none.
- .Xcode修改真机为Generic IOS Device--product---archieve---Export---save for Ad Hoc Deployment----输入账号----报错(钥匙串-系统-显示-过期的证书-重新上网下载证书WWDR Certificate (Expiring //)---把下载的证书拖过去---下一步(ipa就是zip)---Xcode-window-Devices-ipa直接拖到手机去)。
- 程序发布:appstore或者指定区域。限制人电脑(发布证书)app,没有限制真机设备。
- 在开发中心创建app record。开发者账号登陆---iTunes Conect--我的app。
http://blog.csdn.net/cyuyanenen/article/details/51925005
一、概述
(1)iOS开发中,应用程序打包 = ipa = 安装在手机上。(注意,并不是所有的ipa都可以随意安装)
(2)如果想让用户可以安装ipa,必须在打包程序的时候说清楚 哪一个应用程序可以安装到哪一台设备上。
(3)一般要想打包(测试或发布),必须成为苹果开发者。
(4)下面的打包环境:Xcode 7.3.1、iOS 9.3.2。
二、打包(生成ipa测试包)步骤
第1步:配置发布证书和AdHoc描述文件
(1)登陆苹果开发者主页 https://developer.apple.com,选择Account,然后选择 Certificates, Identifiers & Profiles,点击Certificates:
(2)点击右上角的加号:
(3)然后 continue,再选择 App Store and Ad Hoc:
(4)之后,一路 continue,直到需要我们上传 CSR 文件:
(5)创建CSR,即证书请求文件。首先,在钥匙串访问中,如下图从证书颁发机构请求证书:
(6)然后,将CSR文件存储到磁盘,其中的用户电子邮件可以随便写,也可以写你的真实邮箱,其余两项也无特殊要求,可不写。
(7)最后,将CSR文件上传到苹果服务器。此时苹果服务器会自动生成,签名后的CER文件(ios_distribution.cer),然后 Download 到本地磁盘,并双击该CER文件,即可完成安装。 安装之后,可到 钥匙串访问->登录->证书 中查看该证书是否有效。
(8)AppID = Bundld ID 用来在App Store上全球唯一标识每一个应用程序的。注册AppID, 告诉苹果哪一个APP需要调试。
(9)点击Identifiers ->点击加号
(10)其中的 App ID Description 可以随便写
(11)在 App ID Suffix 中,有两个选项可以填写bundle ID,如下图:
<1> Explicit App ID:填写一个精确的ID,如果需要做远程推送/游戏中心/内购等功能,必须填写准确的bundle ID。
<2> Wildcard App ID:填写一个模糊的ID,,如果不需要做远程推送/游戏中心/内购等功能,直接填写模糊的bundle ID即可,这样可以提升我们的开发效率,
所以在开发中,为了保证方便,使用AppID时,可以使用通配符*
,替代所有的应用程序。
<3> 之后,一直 continue 即可。
(12)点击Devices,告诉苹果哪一台设备可以进行真机调试
(13)点击右上角的加号:
(14)在Xcode中,点击window->Devices,获取设备的UDID
(15)填写设备的描述和设备的UDID注册设备
<1> 使用设备的唯一标示符号制定,哪些真机能够调试开发。
<2> 普通的开发者账号,一个账号只能注册100台设备,苹果并没有提供删除设备ID的功能,仅仅只能禁止某台设备调试(禁用后,名额仍然会被占用),被禁止的设备会在下一次付费时被清空(第二年),从而释放名额。
<3> 每一个设备的唯一标示符号,能够唯一准确的定位到一台设备,只能在”添加设备时”使用。
<4> 如果程序中使用了唯一标示符号,将无法上架。
(16)描述文件(Profiles),即告诉系统哪一台电脑的哪一个应用程序可以在哪一台设备上运行。 点击Provisioning Profiles :
(17)点击加号
(18)然后按照提示一步一步往下走,选择对应的证书、AppID、Devices,告诉系统哪一台电脑/哪一个APP/哪一个设备可以调试。
注意,选择对应的证书时,选择的是:Ad Hoc
(19)最终得到 xxxxxx.mobileprovision文件,下载到本地磁盘,双击,保存到Xcode 中。
(20)注意点
<1> 检查证书的状态,可到 钥匙串访问->登录->证书 中查看该证书是否有效。若无效,则可能现象为“ WWDCRA 无效 或 此证书的签发者无效”,解决方案可以参考如下文章: iOS 探讨之 WWDCRA 无效 or “此证书的签发者无效”
<2> 生成AdHoc描述文件的时候要注意勾选所有的设备,只有被描述文件包含的设备才能进行相应的测试。如果是企业账号的话则不需要添加设备的UDID。
<3> 打包ipa时的CER证书,名字为:ios_distribution.cer;
真机调试时的CER证书,名字为:ios_development.cer;
知识点补充:
在苹果开发者主页中配置好需要的证书之后,也可以不用“下载到本地,然后再安装“,还有另一种解决方案,如下:
(1)Xcode->Preferences
(2)选择 Accounts,然后点击加号,然后选择“Add Apple ID“
(3)输入刚刚在苹果开发者主页中使用的 Apple ID,然后点击 Sign In。
(4)登录成功后,点击右下角的 View Details,如下:
(5)点击后,会有两项显示:
<1> Signing Identities,即签名证书
<2> Provisioning Profiles,即描述文件
在最下方,有一个 Download All 按钮,点击后,再点击 Done。即可将对应的证书和描述文件自动安装到对应的位置。
第2步:配置Xcode(即在Xcode中,设置有效的Archive配置)
此处方法众多,本人都亲自尝试过,先打包成ipa,再成功安装到手机上。
方法1:(前提是已经用开发者帐号,注册过相应的证书)
(1)Xcode->Preferences->Accounts,登录你注册过相应证书的 Apple ID 帐号。
(2)运行环境选择真机,此时项目工程下方中的 Products 中是全红的,如下:
(3)Command+B,然后显示如下:
(4)右键选中第一项,选择“Show in Finder“
(5)显示如下
(6)打开你的iTunes,然后选择“应用“,并直接将该app文件拖到iTunes中即可。
怎样验证此时该文件是ipa形式呢?如下图:
结果显示为:
说明我们的确得到了ipa文件。
备注:此处对(6)做个补充,即还有另一种方法得到ipa文件。
将(5)中得到的app文件,拷贝到一个新建文件夹中,该文件夹命名为“Payload“,然后右键选择“压缩Payload“,如下图:
我们将得到一个Payload.zip文件,将该文件重命名为Payload.ipa即可我们想要的ipa文件,然后将该ipa文件拖入到iTunes中即可(或直接双击该ipa文件)。
(7)然后,如下图,点击安装即可将该打包应用安装到手机上。
方法2:(前提是已经用开发者帐号,注册过相应的证书)
(1)Xcode->Preferences->Accounts,登录你注册过相应证书的 Apple ID 帐号。
(2)运行环境选择真机,此时项目工程下方中的 Products 中是全红的,如下:
(3)Xcode->Product->Archive,此时会直接跳转到“Xcode->Window->Organizer“界面,如下:
(4)点击 Export,并依次按下图顺序选择:
(5)最终得到ipa文件,如下图:
(6)直接双击该ipa文件,并在iTunes中将该应用安装到手机上即可。
方法3:(前提是已经用开发者帐号,注册过相应的证书)
(1)方法1和2中,Xcode可能已经默默帮我们做了很多配置,现在我们针对“要打包ipa测试包的任务“明确的做一些特定的配置。
(2)点击 Product->Scheme->Edit Scheme,或者通过如下快捷方式:
进入到如下界面,并点击Archive,确保Build Configuration 为 Release,如下:
(3)经过亲测,TARGETS->Identity->Team 可以不用选择注册相应证书时对应的 Apple ID 帐号,而且选择别的对应/非对应帐号也都没问题。(可能Xcode已经默默的帮我们选择了,所以,此步操作可做/可不做)
(4)选择 TARGETS->Build Setting->Code Signing,如下:
(5)找到 Code Signing Identity 中的 MiGuRead_2AdHoc,点击 Don't Code Sign
,选择之前配置好的证书,因为是打包,此处应选择:iPhone Distribution: xxxxxx,其中Debug 和 Release里暂时不要改动。
(6)其中下方的 Provisioning Profile 可以使用默认的 Automatic,也可以指定对应的描述文件。(一般我们使用Automatic)
(7)执行方法2中的步骤(3)~(7)。
特别说明:此处步骤(5)中,网上有很多种设置方法;
(1)有的将Debug、Release 和 Provisioning Profile 都设置为了对应的证书;
(2)有的将上述打包ipa测试包的证书设置为了“iPhone Developer: xxxxxx“开发证书,但也打包成功了,但这其实是不匹配的,Xcode可能已经默默帮我们更正了。
(3)有的添加了AdHoc,这仅仅是为了区分,方便管理
<1> 先通过PROJECT->Info->Configurations,点击加号,并选择 Duplicate “Release” Configuration(这里一定要选择复制“Release”,因为打包/发布版本一定是release的)
添加后,如下:
<2> 重命名(即命名可以自定义),一般证书和描述文件取名时默认用项目名称+对应的功能缩写。(有时也直接命名为AdHoc)重命名后,如下:
<3> 选择 TARGETS->Build Setting->Code Signing,如下:
<4> 找到 Code Signing Identity 中的 MiGuRead_2AdHoc,点击 Don’t Code Sign,选择之前配置好的证书,因为是打包,此处应选择:iPhone Distribution: xxxxxx,其中Debug 和 Release里暂时不要改动。
<5> 选好之后,显示如下:
<6> 同样,其中的 Provisioning Profile 可以使用默认的 Automatic,也可以指定对应的描述文件。(一般我们使用Automatic)
<7> 执行方法2中的步骤(3)~(7)。
xcode打包测试的更多相关文章
- 2017iOS开发最新的打包测试步骤(亲测)
最近也是忙着修改项目,今天把最近遇到的问题和知识给大家分享一下. 有时候我们需要将我们的项目发给测试组进行bug测试,这时候我们就需要把自己的项目打包,生成一个二维码或者链接的形式,给测试组,接下来就 ...
- junit高级篇(参数化、打包测试)-实例代码
工程目录: 参数化测试,SquareTest.java: import static org.junit.Assert.*; import java.util.Arrays; import java. ...
- XCode 打包问题巧遇
XCode 打包问题巧遇 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句: ...
- 2017最新xcode打包APP详细图文
网上的xcode打包ipa教程大多太旧而且又不完整,所以整理了一个最新的完整详细的xcode打包APP的图文教程分享给小白到大神路上前进的你我. xcode打包IPA包之前先申请iOS证书,然后导入证 ...
- webpack 打包测试和生产多个版本
cross-env修改生产环境变量 npm i --save-dev cross-env 在package.json里这么配置 npm run build就是打包到生产环境 npm run build ...
- Junit打包测试
在一个项目中,只写一个测试类是不可能的,我们会写出很多很多个测试类.可是这些测试类必须一个一个的执行,也是比较麻烦的事情. 鉴于此, JUnit 为我们提供了打包测试的功能,将所有需要运行的测试类集中 ...
- Xcode打包提交至itunes connect后,提交审核成功,随后出现二进制文件无效
1.问题描述 Xcode打包提交至itunes connect后,提交审核成功,应用处于待审核状态,过了大概半个小时状态更改为二进制文件无效 2.原因分析 2.1 登陆在苹果中预留的邮箱 ---- 邮 ...
- vue分别打包测试环境和正式环境
vue打包时使用不同的环境变量 需求 同一个项目通过打包使用不同的环境变量,目前的环境有三个: 一.本地------开发环境 二.线上------测试环境 三.线上------正式环境 我们都知道vu ...
- iOS打包测试
iOS开发中,怎么打包为ipa格式的软件包以及怎么安装到手机终端上. (我的开发环境为Xcode6.1.1 )作为个人开发者(当然我的开发者帐号为个人开发者帐号,而不是企业开发者帐号),对于自己来说, ...
随机推荐
- dubbo之泛化引用
使用泛化调用 泛化接口调用方式主要用于客户端没有 API 接口及模型类元的情况,参数及返回值中的所有 POJO 均用 Map 表示,通常用于框架集成,比如:实现一个通用的服务测试框架,可通过 Gene ...
- 三维重建面试13X:一些算法试题-今日头条AI-Lab
被人牵着鼻子走,到了地方还墨明棋妙地吃一顿砖头.今日头条AI-Lab,其实我一直发现,最擅长的还是点云图像处理,且只是点云处理. 一.C++题目 New 与Malloc的区别: ...
- 使用Visio—UML画类图
在一个VS工程中,由于类的个数较多,而参数描述不是特别清晰.若此工程的生命周期较长,则有必要对工程进行完整分析,给出完整的文档.需要画出类图,并对每个成员进行详细描述. 一.画出类图 在VIsio中, ...
- Visual Studio Code 插件推荐
Path Intellisense - 路径补全 HTML Snippets - HTML 标记增强 Markdown+Math - Markdown 增强(数学表达式) vscode-icons - ...
- SpringBoot入门系列(转)
SpringBoot入门系列:第一篇 Hello World http://blog.csdn.net/lxhjh/article/details/51711148
- Robot Framework(五)使用测试库
使用测试库 测试库包含那些最低级别的关键字,通常称为 库关键字,实际上与被测系统交互.所有测试用例总是使用某些库中的关键字,通常是通过更高级别的用户关键字.本节介绍如何使用测试库以及如何使用它们提供的 ...
- css 陌生属性
记录一些我之前没见过属性 1.width:100vh 100vh 2.min-height:calc(100vh + 51px);cale 3.:nth-child nth-child 和 :n ...
- AtCoder ABC 070D - Transit Tree Path
传送门:http://abc070.contest.atcoder.jp/tasks/abc070_d 本题是一个图论问题——树(Tree). 有一棵结点数目为n的无向树.第i条边连接结点ai与bi, ...
- Java基本排序算法
转载来自:https://www.jianshu.com/p/5e171281a387 一遍记住Java常用的八种排序算法与代码实现 1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已 ...
- redis liunx系统安装
同事总结非常好,借鉴一下 原文地址:https://www.cnblogs.com/dslx/p/9291535.html redis安装 下载redis的安装包上传到Linux服务器,安装包如下 h ...