Xcode打包ipa小结

一.拿到一个新的苹果帐号之后,我之前的做法是直接去苹果官网生成证书(包括生产和测试证书),后来发现直接用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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • 引言 关于开发证书配置(Certificates & Identifiers & Provisioning Pro...
    奋斗的蜗牛阅读 7,301评论 2 20
  • 1.首先通过钥匙串访问——证书助理——从证书颁发机构请求证书——填写证书信息(邮箱,常用名称,存储到磁盘)——存储...
    DanDanC阅读 7,900评论 5 15
  • 公司的帐号是企业帐号,开发的app不需要上传到App store,而是直接打包成ipa包提供给公司内部使用。我参考...
    那个女孩_T阅读 5,324评论 1 3
  • 昨晚我跟我爱人说,每次我都认为我正在经历的状况就是最糟糕的,以后会越来越好的。可是每次一个体验结束,都会有更...
    安琪Sara阅读 402评论 2 0
  • 我往北飞,向南说再见。 时间倒退到一年前,大家都还每天埋头在各种模拟卷里,仍然在为月考的排名而苦恼,一边背着单词,...
    alma饭团阅读 249评论 0 0