iOS Developer程序员程序员

Xcode打包ipa小结

2016-09-22  本文已影响2311人  macfai

一.拿到一个新的苹果帐号之后,我之前的做法是直接去苹果官网生成证书(包括生产和测试证书),后来发现直接用xcode进行证书的生成也挺方便,而不用再去官网了。直接开始吧  O(∩_∩)O~~

1.xcode->preference->account->点击左下角的加号添加appid。

2.添加成功之后在你对应的appid右下角->view Details->

进入到详细页面

点击create 就可以创建这个苹果帐号下面的开发证书和发布证书,这时候你的证书在苹果官网其实也已经生成了,这时候你回到官网去,会发现你刚刚创建的两个证书

这时候你会发现下面是空的,因为PP(Provisioning Profile)文件还没有生成,而要生成PP文件就要去官网生成了,以上就生成了证书。

二.这个步骤来生成identifier

       进入官网

选择APP IDs->点击右上角加号->填写name 和 bundle id

name一般可以根据自己的项目起,这个是自己规定,bundle id 注意要和自己xcode 中的保持一致这个很重要,如果有推送功能,这个页面的下面要把那个推送选项打勾。这一步就完成了identifier的配置

三. 这一步添加自己的设备uuid。

      根据官网提示,输入一个你的设备名称,再通过xcode查看你的设备的UUID,粘贴过来,然后直接点击Register 设备就注册好了。

四. 生成PP文件(重要)

     这一步的作用是把前几步生成的证书,id,设备,这三个要素进行关联,当然如果是生成发布用的PP文件的话就没设备什么事情,点击进入操作页面后点击后上角的加号,然后根据需要选择开发或发布

第1步将id绑定进入PP文件,选择自己的APP ID。

第2步将证书绑定进入PP文件。

第3步选择设备。(这一步骤在生产PP的生成过程中不用,因为生产面向所有用户)

第4步给PP文件起名,就好了这个名字要起的有意义,最好根据自己的应用来取。

第5步点击完成。当然也可以下载,我一般是不下载直接去xcode里的那个详情页面下载

生成的PP文件:状态可用

接下来回到Xcode中,在Xcode里进行PP文件的下载,一般点击左下角的Download All(如果你新添加了一个设备,那么就要在官网中重新编辑一下PP文件,添加所有的设备信息进入PP文件,在下图中就会出现最新的PP文件,你直接Download All 就好了),当上面 Action那一列的Download消失后就说明下载好了然后点击Done就可以了

至此,证书和配置文件都已经准备妥当接下来就可以打包成ipa文件或者直接在真机上运行了当然xcode7之后可以用免费的个人帐号来运行,这里只是一种方式都可以

五. 做好了上面的准备工作就可以进行打包了这里以打成ipa的包为例来简单说明一下

         Xcode->Targets->General->Identity中进行填写,填写你的bundle id ,注意要和官网上刚刚填写的一致,并在Team中选择对应的账户,然后进入Build settings->Code Signing

选择如图所示(注意Provisioning Profile 选择 Automatic,当然这里如果没有选择自动,而是选择了你生成的具体的PP文件名称,那么上面的Code Signing Identity 也要和这个写成一致,否则在general界面会有报错 ),就可以了,然后进行最后一步,打包ipa,如图

以上操作就是完整的一个证书配置和打包的过程,最后说明一下下图

第一个是上传到App Store 要选这个,我们一般开发阶段是选第四个,第二个本人测试和第四个是一样的(发现第二个打包的时候你无论是用发布证书还是用测试证书都可以正常打包,而且可以安装到手机),都可以成功安装到手机上,第三个是企业帐号打包时候的选项

开发环境

一步一步next,最后起名字,导出就圆满结束了。

如果感觉对你有用,就给个爱心吧, 呵呵。

小点:xcode8推出了证书自动管理功能(默认是生成开发模式的不是生产模式的),开发环境打包都OK,就是过了一段时间准备上线的时候,打生产包出现问题,上到苹果官网查看,两个配置文件都已经失效,很奇怪,就重新编辑生成了配置文件,然后改用手动管理方式才解决。

附:

初次打包时可能会遇到的问题:no identity found 感谢原作者

二.小记

打包的过程很琐碎,一段时间不打包就会忘记一些流程,特记录最近打包的一次流程以便后续查阅。

1.证书按价格分2种,99和299,99是公司或个人的,分发方式是appstore,299是企业的,适用于大企业,比如内部办公软件,不公开的,而且299的不允许上appstore。

2.按组织形式来说,个人,公司,企业证书打包流程基本一致,开发证书都是需要进行设备注册的,上限都是100台,否则无法安装到手机上,而发布证书是不需要进行设备注册的。

3.打包具体步骤,文章第一部分已经写了通过xcode进行证书生成,但是有个问题,网速慢的时候会发现证书生成页面总是加载不了,可以切换成通过官网的形式来执行整个流程,大致流程为:官网证书页面从上到下依次执行,首先创建证书,三种形式的创建方式一样,本步需要上传自己电脑生成的Csr文件,第二步创建id,包括填写name,和bundle id (本步需要注意开发证书一般要进行多个设备的调试,可以选择写个通赔符的,即那个wizard,而发布证书则要是唯一的那个),第一步certificate和第二步identifier之间不存在联系,他们是独立的,证书的作用到底是什么,推测是苹果为了进行设备绑定,让一个证书不能多个人使用,后续会提到。第三步设备注册只有开发证书需要,第四步配置文件,就是将前几步进行串接,整合成profile文件,可以发现生成配置文件的步骤正是前几步的组合。

4.将生成的配置文件和证书下载,点击打开(文件闪一下证明已打开)在xcode中配置时首先写对你刚才第二步填写的bundle id,然后再选择组织,当然xcode8之后证书可以自动管理,建议开发中可以选择自动模式,发布时选择手动,便于控制,之前遇到过一些问题发现的,如果是手动的话要在xcode设置中的code signing中选择你的证书和配置文件。

5.如果证书是别人在管理,我们去苹果官网上生成时会发现证书生成第一步是灰度不可选,暴力的方式是把别人的删除掉,昨天刚刚在299的账号上发现开发证书只能生成一个,然后就做了一回坏人,把其他的证书都删除了,当然仅仅是开发证书,生产证书万万使不得,如果证书不是自己管理又不能删除呢?就只有让证书管理者,即第一次生成证书的那个人将证书导出成.p12 文件(反正开发中或者发布的时候,直接从苹果官网下载的别人生成的证书是不用不了的,是自己曾经踏过的坑,直接下载了别人已经生成好的证书,自己只是生成了一个新的配置文件,这种情况xcode中会报错,例如:No certificate matching 'iPhone Distribution:冒号后面是某某公司的名字,并且你会发现,你点击开Provisioning Profile那个下拉框的时候,发现你生成的那个配置文件也是Ineligible(不可用)原因就是没有与之匹配的证书,解决办法就是要么自己从头生成证书(如果你是证书管理者),要么让证书管理者提供打包好的P12文件(钥匙串文件以及证书文件)和描述文件(mobileprovision)),这样需要用到的人就可以直接在自己电脑上进行打包了。等想到了再写吧,脚蹲麻了。

问题(只有p12文件)和场景(299的发布证书)

1.证书有专人管理时,最好的办法是证书管理者将p12和配置文件一起提供,如果只提供了p12文件,怎么办?

其实p12相当于是个共享模式的证书,也就是证书已经有了,不用再自己生成了,那么就可以在苹果官网中直接进行第二步,创建 APP ID ,这个和证书是独立的,没有任何的关系,各是各,注意发布证书的bundle id要是唯一的,而不能是通配符形式的。

生成APP ID后,如果是发布证书(和设备就没有任何关系了)就直接去生成配置文件,根据提示一步步操作就好了。

企业证书(299)的发布证书在生成ipa时,不能进行validation ,提示帐号没有权限,如图:

查了一下,stackoverflow上说的苹果目前不支持这种,后来就不进行validate,直接进行ipa打包,然后上传到蒲公英,就可以了。

用命令行自动打包

我们的工程名为 CDesk

首先打开终端进入指定文件夹:CDesk.xcodeproject  所在的文件夹,然后输入命令:

1.    xcodebuild -project CDesk.xcodeproj -target CDesk -configuration Release

** BUILD SUCCEEDED **   (看到这个字样证明打包成功)

 2.利用xcrun 命令进行签名相关操作    直接打包后将ipa包放在桌面,如果执行成功,会发现桌面生成了 .ipa

xcrun -sdk iphoneos -v xcodebuild -exportArchive ./build/Release-iphoneos/CDesk.app -o ~/Desktop/CDesk.ipa

上一篇下一篇

猜你喜欢

热点阅读