仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1386|回复: 19
打印 上一主题 下一主题

[学习教程] IOS编程之IOS主动化打包先容仓酷云

[复制链接]
飘灵儿 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
CoreAnimation---制作动画很强大很喜欢的框架可以用少量的代码写出漂亮的动画CQuartz2D---强大的2D绘图库COpenGL---不用介绍了超级强大的3D库CCoreImage---择要

跟着苹果手持设备用户的不休增添,ios使用也增加敏捷,同时跟着iphone被逃狱愈来愈多的app的渠道也不休增加,为各个渠道打包成了一件费时吃力的事情,本文供应一种对照智能的打包体例来削减其带来的各类方便。
TAG

Ios打包,app打包,iphone打包,iphone主动化打包,ios打渠道包,iphone主动化打渠道包
主动化打包背景先容

1、背景

跟着ios程序公布的渠道渐渐的增加,为每一个渠道打包同样成为出格泯灭工夫和膂力的一项手艺活了,而这一样平常年夜多半都是由rd来完成的。如许就占用了rd良多的开辟工夫,何不把这些工具写成一个主动化的剧本,然后交给qa或是pm来完成这个打包历程了。经由一番调研发明网上这类剧本仍是很少的,不外xcode供应了shell编译工具xcodebuild和ipa打包工具xcrun,这就有来由让我们使用这两个工具写一个主动化的打包剧本来进步我们的事情效力和主动化水平。
2、ios程序包格局、渠道包格局

1)发生多渠道的缘故原由及多渠道带来的打包成绩:跟着iphone、ipad、itouch等手持设备炽热发卖,而它们下面的使用也随之火爆了起来,而随之而来的就是以上设备被逃狱后就能够在逃狱的设备上间接运转ipa程序包而不必经由过程appstore往下载,如许一来国际就发生了浩瀚的专门为逃狱手机而开设的渠道供应ipa程序包的下载。跟着愈来愈多的渠道,推行时为各个渠道打包就成了一项对照泯灭工夫和精神的手艺活了,因而我们必需寻觅一种主动化的体例让打包变得高效复杂。
2)Ios程序包分为appstore二进制文件跟渠道包两种格局
appstore二进制文件:经由过程xcode工具能够天生一个.app格局的二进制文件。
渠道包:格局为.ipa格局,在没有主动化打包工具之前都是使用xcode来天生响应的渠道包,并且每次只能天生一个渠道包,每次打包之前都到手动该渠道ID,带来的成绩就是泯灭工夫、效力低下、简单堕落、增添风险。
3、传统的ios打包体例

使用xcode打包
1)appstore二进制程序包
翻开你的项目,进进“EditProjectSettings”,进进Configuration页面,选中Release点击上面的Duplicate,复制一个新的设置项出来,定名为Distribution。然落后进Build页面,顶上的Configuration下拉框选中Distribution,上面的CodeSigningIdentity内里的AnyiPhoneOSDevice前面对应的值选中你的谁人Distribution的证书。然后点击“Build”–>“Build”就能够编译程序了
编译乐成后,你就能够在响应的build目次下看到一个.app的二进制文件。
2)渠道ipa包
依据以上步骤一样设置好Distribution证书,然后点击“Build”–>“BuildandArchive”就能够编译程序了。接着翻开“Window””Organizer”右边栏当选择”ARCHIVEDAPPLICATIONS”然后再右边列表当选中方才编译的程序包再点击右边右侧顶部的”Share”按钮保留到磁盘便可。就会天生一个.ipa的文件即为渠道包。
注重:以上运转设备必需选择“Deveice“
4、传统的打包带来的成绩

泯灭工夫、泯灭膂力、效力低下、只能依附RD来完成、简单堕落、公布风险对照高、QA回回确认对照坚苦、不智能化。
主动化打包详细完成

1、xcodebuild先容:

1xcodebuild[-project
2][-activetarget][-alltargets][-target]...[-parallelizeTargets][-activeconfiguration][-configuration][-sdk|][=]...[]...
3xcodebuild[-version[-sdk|]]
4xcodebuild[-showsdks]
5xcodebuild[-find][-sdk|]
6xcodebuild[-list]
也能够在终端输出:xcodebuild–help或–h检察详细的选项
显现xcodebuildversion:xcodebuild–version
显现以后体系安装的sdk:xcodebuild–showsdks
显现以后目次下projectInformation:xcodebuild–list
必要注重的是:实行以上命令时必需把地位定位在ios项目文件的根目次下不然会提醒找不相干命令的。
2、xcrun先容:

此工具次要用于将app文件打包成ipa格局的程序包。(次要用于已逃狱手机)。
详细用法以下:
1/usr/bin/xcrun-sdkiphoneosPackageApplication–v[{TARGET}.app]-o[{TARGET}.ipa]--sign[{IphoneDistribution:xxx}]–embed[{xxx.mobileprovision}]
个中:-v对应的是app文件的相对绝对路径–o对应ipa文件的路径跟文件名–sign
对应的是公布证书中对应的公司名或是团体名–embed对应的是公布证书文件
注重假如对应的Distribution设置中已设置好了相干证手札息的话–sign和–embed能够疏忽
3、详细计划

a)从源程序一次性打出一切渠道的ipa包跟appstore的二进制包
为了让主动化剧本实行一次把一切的渠道包都打好,以是必需有一个设置文件用来存储一切的渠道名跟渠道号,而项目文件中也应当有个对应存储以后渠道号的文件,每次程序都从这个寄存渠道号的文件中读取渠道号便可,也许的思绪就是使用剧本轮回实行打包历程,而每次打包前都经由过程剧本修正项目中寄存渠道号的文件为以后轮回的最新渠道号,让后逐一打包。
注:详细事例见附录
b)供应一个ipa格局的母包从母包天生别的一切的渠道包跟appstore包
qa的一些疑问,怎样确保一切的渠道包就是他们考证过的那份代码呢?
切实其实,以上代码每次都是从头对程序举行打包,可qa常常测实验证的只要一个包,假如个个往考证偶然中当中又增添了qa的事情量哈!!并且风险也不成控。因而基于下面的成绩我们想出了一下举措:qa只考证一个程序包(即母包)假如这个包经由过程考证我们就经由过程母包往天生别的渠道的包,如许一来qa也不必确认那末多的渠道包了,风险也失掉了无效的把持。
大概你会问:用一个包天生其他的包可行么??
缘故原由是如许的:由于每一个渠道只是渠道号产生变更,而其他的内容又不会产生变更,而我们的渠道号又是存储在sourceid.dat这个文件中的,以是只需改动母包中的sourceid.dat文件的内容便可,而ipa包又是同zip格局举行紧缩,以是基础思绪就是经由过程zip先对母包举行解压,然后改动sourceid.dat的内容最初再用zip举行紧缩成响应的渠道包便可。
Ipa包的目次:
注:详细事例见附录
一些成绩

当有些shell命令在mac的终端中运转欠亨过期,请确保你的shell剧本是在mac情况下编写的而不是同xp等其他情况中copy过去的。由于mac跟xp的编码是纷歧样以是会有成绩。
总结:

经由过程从母包打出其他渠道的包这类办法:失掉以下优点
i.下降了rd的事情量,一同qa的事情量。
ii.让测试公布程序时的风险失掉了把持。
iii.进步了打包公布事情效力。(几十个包只需短短的几分钟)。
iv.进步了主动化。
v.不依附mac和xcode情况间接在linux下便可完成从母包天生别的包
附录

使用xcode情况一次天生一切包的shell剧本代码:

01#!/bin/sh
02
03xcodebuildclean-configurationDistribution//clean项目
04
05distDir="/Users/xxxx/dist"
06releaseDir="build/Distribution-iphoneos"
07version="1_0_0"


所以你可以用很多方法存储数据比如最长用的sqlite当然如果另类也可以用plist文件或者其他NSManagedObjectContextNSManagedObjectContext
若相依 该用户已被删除
沙发
发表于 2015-1-30 20:14:28 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
海妖 该用户已被删除
板凳
发表于 2015-2-6 15:44:02 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
第二个灵魂 该用户已被删除
地板
发表于 2015-2-6 17:54:54 | 只看该作者
因为我们老师也是自学的,给我们讲课说的最多的就是百度,谷歌,查文档。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-9 22:04:02 | 只看该作者
首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书
再现理想 该用户已被删除
6#
发表于 2015-2-10 08:56:39 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
老尸 该用户已被删除
7#
发表于 2015-2-12 21:50:29 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
透明 该用户已被删除
8#
发表于 2015-2-17 20:12:24 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
小女巫 该用户已被删除
9#
发表于 2015-3-4 11:25:42 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
飘飘悠悠 该用户已被删除
10#
发表于 2015-3-5 12:33:09 | 只看该作者
从C语言入门,因为IOS开发用的是OC语言,是在C基础上的,不过也跟C不是很搭界,你可以直接学习OC语言也可以,
莫相离 该用户已被删除
11#
发表于 2015-3-12 06:38:36 | 只看该作者
其实在培训的过程中,学习到最多的就是查资料的方式,当时感觉老师好坑,什么都不告诉我们,让我们自己去查,但是现在觉得还是要自己解决问题,这样才能理解的更加深入。
分手快乐 该用户已被删除
12#
发表于 2015-3-19 16:47:24 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
兰色精灵 该用户已被删除
13#
发表于 2015-3-24 09:24:52 | 只看该作者
然而,在vmware软件环境下,安装Mac OS X操作系统也是一件非常复杂的事情,而且还有可能花费了大量时间,最后却跑不起来。笔者也是经过了大量的实践,
不帅 该用户已被删除
14#
发表于 2015-3-25 12:29:41 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
15#
发表于 2015-3-27 10:08:47 | 只看该作者
还有开发工具是用Xcode,是在Mac系统的,你多摸索一下就可以开发简单的应用了,建议你买一本iphone开发秘籍第二版看看,希望可以帮到你,谢谢。
金色的骷髅 该用户已被删除
16#
发表于 2015-4-8 19:39:50 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
因胸联盟 该用户已被删除
17#
发表于 2015-4-11 11:30:19 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
小魔女 该用户已被删除
18#
发表于 2015-4-12 14:27:11 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
admin 该用户已被删除
19#
发表于 2015-4-12 17:44:12 | 只看该作者
以上可以同时进行,学习过程中尽量不要纠结细节和底层,要知道ios是封闭的、OC是高级语言,我们不可能过多地去了解它的原理,至少在新手阶段没有必要。用迭代的方式更新你的知识,而不是死抠一个知识点。
活着的死人 该用户已被删除
20#
发表于 2015-6-8 22:29:50 | 只看该作者
同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 19:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表