一、获取 ipa 文件
iOS 的应用都是打包成 ipa 的文件格式,ipa 文件实际上就是 zip 格式的文件,通过 unzip 可以解压,和安卓下的 apk 包类似。App Store 下载完应用,就把 ipa 解压到某个目录,然后把 ipa 删除,那么我们如何获取 ipa 文件呢?
可以通过 iTunes 安装来获取 ipa 文件,在 iTunes 上安装应用会保存在 ~/Music/iTunes/iTunes Media/Mobile Applications 目录,只需要将文件复制出来就可以了,如图:
目录:~/Music/iTunes/iTunes Media/Mobile Applications
二、脱壳
由于是从 App Store 下载的 ipa 文件,所以是加壳的,得去掉壳才能干活,去壳的方法可以参考:http://blog.csdn.net/sysprogram/article/details/72887473
三、注入动态库 dylib
注入动态库的方法可以参考我的第二种方法,添加 LoadCommand
http://blog.csdn.net/sysprogram/article/details/75579301
四、重签名并打包
主要就是重签名并打包了,这点是比较坑的地方,很多人在这一步遇到问题。签名是苹果的一套安全机制,这套东西阻止了程序在 iOS 设备上运行,如果要发布程序,首先得去苹果的开发者中心里生成配置文件(Provisioning profile),这个配置文件标识了哪些设备能运行你的应用,这就是为什么要在开发者中心要添加设备的 UDID 的原因了,如果你的配置文件是发布 App Store 的类型的,那么签名机制就不会检测设备的 UDID,但如果选择了App Store 的类型的配置文件,有可能你设备上安装不了重签名的应用,因为重签名的应用一般上架不了 App Store,只能使用 iTunes 或 Xcode 等一些工具安装。
这让我们想起了苹果开发者的三种类型,一种是个人(99$),一种是公司(99$),还有一种是企业(299$),苹果官方的说明:https://developer.apple.com/support/compare-memberships/
个人和公司类型主要是用于上架 App Store 的,而企业不能上架 App Store ,主要用于分发给企业内部使用,如果是企业类型的证书,无需添加 UDID 也能运行。
为了方便,我们可以使用开源工具 iOS App Signer,这个工程可以自动搜索本机的证书和配置文件,源码地址:https://github.com/DanTheMan827/ios-app-signer
源码如果编译不过,可以下载编译好的程序,地址:https://github.com/DanTheMan827/ios-app-signer/releases/download/1.9/iOS.App.Signer.app.zip
选择好解压的应用.app,然后选择好证书和相应的配置文件(Provisioning profile),点击开始就会自动打包生成 ipa 文件了。
五、安装
安装方法可以使用 iTunes 或 Xcode。
使用 iTunes 安装,插上你的手机,信任之后点击应用,选择 iTunes 的菜单 文件 -> 添加到资料库,选择好你打包好的 ipa 文件,在应用列表里就会显示出来,点击同步就可以了。
使用 Xcode 安装,点击 Xcode 的菜单 Window -> Devices,在 Devices 的界面里选择手机,点 + 号,选择你打包好的 ipa 文件就行了。