引言
在工作之余,有人问想要安装多个某信、其他App 怎么办?
这个时候我的思想是:我凑 这都找我
不假思索的说:“越狱啊”
某人:“不想越狱”
“不想越狱你还想装多个App?”
某人:“是的”
“额,你想干嘛?”(其实心里没底,我也不清楚,但是装逼还是要全套的)
某人:“我业务多,比方说某信账号工作的时候一个、生活一个、玩有一个、行业交流有一个、还有一些其他账号”
....
不要爬来来来正题
正文
根据上一篇文章探究IPhone怎么验证App合法、开发怎么验证? , 自己重新签名App达到安装多个同样的App的目的,因为在IPhone中Bundle identifier这个标示(appleid)决定了你的app的标示唯一,so修改Bundle identifier重新将App打包成Bundle identifier、证书等就可以实现App多个安装,实际上是骗过Apple,这个不再是一样的app,目的达到 实现多开。
手动签名的方式
准备操作
- 准备需要多开的应用的ipa包(越狱包)、并解压文件
- 需要一个开发者账号、或者自己注册的私人的可申请开发证书的账号
-
codesign
重签名,以及查看签名信息的工具
分析包文件
一、查看App的签名的信息:
codesign -vv -d 路径/WeChat.app
-
进入ipa包解压后的文件夹,查看签名信息:
然后我们发现是没有签名信息的,签名信息是被破坏的、砸过壳的,在Iphone上面是不让安装的用Xcode安装是安装不了的。
-
查看正版应用的签名信息:
正版的是有签名信息,只有这个签名信息的时候才能安装,我们如果需要重新签名需要证书进行签名
二、列出我们所有的证书
security find-identity -v -p codesigning
- 上述是存在的几个证书,只要是能够开发的证书都是可以用的。
如果,Xcode选中的证书能够把demo安装到iphone上面,那么这个证书就能够让我们重新签名
三、越狱的App与正版的App有什么区别?
otool -l WeChat | grep crypt
- 通过
otool
工具来查看可执行文件的加密信息-
越狱版的加密信息:
加密的信息是0
-
正式版的加密信息:
加密的信息是1
-
手动重签名操作
一、目标文件
我们将要对WeChat进行重签名:
-
我们个人免费证书没法对Plugins里面的内容进行重签名,所以只能干掉
干掉Plugins文件里面的内容
- watch文件干掉(因为里面也有Plugins,并且我们对于这个App也没用)
- 对Frameworks里面的动态库
- 通过下面命令进行依次签名
codesign -fs "你的证书" 签名的文件
- 给可执行文件可执行的权限,在App中可以看到WeChat是白色的不可执行
chmod +x WeChat
- 新建一个项目,build拿到release版本的App中的
embedded.mobileprovision
文件直接拷贝到我们刚才修改的越狱包里面 - 修改Info.plist中的Bundle identifier!越狱App的替换成新建项目的!
- 在越狱App中查看复制过去的
embedded.mobileprovision
的权限
security cms -D -i embedded.mobileprovision
将权限copy出来生成一个plist文件
- 签名整个App
codesign -fs "证书" --no-strict --entitlements=权限文件plist 你的应用.app
二用Xcode安装签名后的App
步骤
- 打包ipa 在*.app文件夹下
zip -ry WeChat.ipa Payload
-
Xcode command + shift + 2
找到我们的真机设备
网友评论