|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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 |
|