使用xctool 打包 , 到 越狱机 免除codesign ,到年末寄语

最近一段时间 ,做sdk 开发,针对的是越狱渠道,导致打包特别多,就一直想找到简单的 打包方式。。 在网上找了下资料,选了facebook 开源项目 xctool ,来试水。  

感谢 https://github.com/facebook/xctool    http://www.cnblogs.com/yesun/archive/2013/08/16/3261839.html   等 开源code 以及大量具有分享精神 dev;



操作系统  10.9.5 


一。 安装xctool

A: 首先下载 homebrew,我简单理解为是一个 管理工具, 从这里 来下载 xctool, 这也是xctool 的 推荐安装方式

1. 点击链接   http://brew.sh/  , 选择安装方式


   如果失败, 请 打开链接 : https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Installation.md#installation  .. 选择 如下安装方式:




本人就是选择了 第二种安装方式 , 安装完成之后,其目录结构如下;就是~ 目录之下,因为是在 ~目录 下,执行的 mkdir 安装指令,,(上述安装指令,可以通过复制,粘贴在 terminal 上 来执行)




2. 安装完成  homebrew 之后, 打开链接 https://github.com/facebook/xctool ,来安装 xctool  ;; 进入到 homebrew/bin/ 目录下。 执行 



安装完成之后,就会在bin/ 目录下 生成xctool 的 索引,其真实在 Cellar/ 目录下...  所以就在 bin/ 目录下,来执行 xctool 指令。。否则,在其他路径下执行xctool 指令 ,是无效的



二 ..  使用 xctool 打包


1. 输入help 指令,查看 帮助,里面有 build,clean 等常用命令,当然也有我们需要的archive 指令; 




其中用到的base options ,如果是工作区 就使用 -workspace , 若果事project 就是用 -project  , 那么很明显,我们要的archive 指令格式就是  ./xctool  -project  our_project_file_path   -scheme  schemName   archive  -archivePath  coustom_archivePath , 其中 -archivePath  coustom_archivePath 可以省略,默认使用我们 在xcode 中archive 默认配置  ,, xctool 是依据scheme 来执行,而不是 target.. 所以 -scheme  参数 是必须的  , 这一点 在 xctool 的github 上也能够看到。。。


2.。  输入   ./xctool  -project /Users/admins/Desktop/demo/demo/demo.xcodeproj  -scheme demo archive -archivePath ~/Desktop/DemoTestArchive.xcarchive   


3.  最后 ,在 桌面上, 有了这个 archive包




总结: 

我们可以看到 ,其实 xctool 就是从xcode 中读取配置 来build 和 archive, 个人认为,xctool 就是 xcodebulid 和 xcrun 和 二次封装。。 在速度上, 小项目 比如这个demo ,就几M,  几乎感觉不到 差异, 使用xcode 直接打包 和 xctool ,没有拿秒表计算。。  在大项目上,有个 700多M 的项目,,里面大多是 资源。。   使用xcode 得5分钟左右,xctool 也只节省了 几十秒左右的时间 ,没有拿表秒计算,只是这样的感觉... 




三 . 针对越狱机器 免除codesign


1 . 好了,我们打了一个 archive包,双击它打开, 到了我们熟悉的 打包界面 ,一气呵成,导出ipa ,赶紧安装下.




oh,myGod, 一如既往的有 



作为越狱机,怎么能让用户 这样呢,,要是用户不了解这个机制,直接将我们程序给删除了,那不就 啪啪啪了!



2.   ok, 下面我们破除这个门槛   :


a 首先,我们在桌面新建 文件夹 Payload ,

b 右键 我们刚才 在桌面生成 archive 包, 选择 show package contents  -> 选择 Products -> 选择 Applications

c 右键 applications 下的 demo.app 文件 ,选择 show package contents  得到里面 一堆内容, 删除掉 _CodeSignature 文件夹



d. ok ,再将 这个删除过文件夹的 demo.app 移动到 a步骤中生成的 Payload 文件夹中



e.  最后一步,在终端移动到 桌面目录 ,  压缩这个 Payload 文件夹:    zip  -qr   ./CaoLiuZuiAi.ipa    Payload/



这样我们在 桌面上,生成了 我们的 渠道包 ipa 格式,现在这个包,使用苹果安装助手工具等,会发现:  没有越狱的机器 是装不上的。 只有越狱机器能装,最关键的是 ,第一次打开没有弹窗啦。。


也显而易见,,ipa 就是一个 压缩包而已..


四。。补充一点

若果装有 多个 xcode版本,,比如楼主 有 xcode5 和 6 两个版本,,有一些工程 必须使用特定 版本,怎么来切换呢?

xctool 默认使用xcode最新版本, 你可以使用一下指令 更改默认的版本 , swith 后面跟上 你制定版本xcode 的路径

sudo xcode-select -swith /Applications/Xcode.app/




写在结尾 :


热爱生活,是生活 让我们 精彩,感谢路上的人,使他们不让我们孤单。。 可是现实很冷,我也不知道该怎么办。。。  如果这个世界,像程序一样 可控 可预测 , 希望一些梦想,能在新的一年里实现 


 2015-01-30  周五 晚上7:00


        




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值