回顾
手动重签名的过程(重新梳理)
准备
- 越狱的ipa包
- 一个可以开发的开发者账号
-
codesign
、security
、chmod
、zip
命令工具 - 创建重新签名App的工程 MsignDsemo
操作
- 干掉Plugins文件夹中的所有插件
- watch文件夹干掉
- 通过命令工具
codesign
对Frameworks文件夹中的所有动态库加密codesign -fs "你的证书" 签名的文件
- 给MachO文件可执行的权限
chmod +x WeChat
- Bunild
MsignDsemo
得到MsignDsemo.app
复制embedded.mobileprovision
文件到越狱包中的.app文件夹里 - 将越狱包中
Info.plist
文件中的bundle Identifier
换成MsignDsemo
的bundle Identifier
- 查看
embedded.mobileprovision
权限字典,copy生成权限*.plistsecurity cms -D -i embedded.mobileprovision
- 使用权限*.plist文件签名整个app 也就是
Payload
文件夹codesign -fs "证书" --no-strict --entitlements=权限文件plist 你的应用.app
- 打包ipa文件
zip -ry WeChat.ipa Payload
- 使用Xcode安装ipa文件
正文
使用Xcode
进行签名,因为在很多时候我们在做手动重签名的时候,iOS版本升级,或者Apple在改变了签名的规则,那么我们在按照上面所述的内容进行重签名就不行了,上述的步骤都是写死的,我们思考一下,在我们打包的过程中都是在哪里打包的?是在Xcode,签名的规则改不改变Apple知道,但是Xcode是肯定能够签名的!
准备
- 创建一个项目
XcodeCodeSignDemo
- 一个越狱的ipa包
test.ipa
步骤
- 首先解压
test.ipa
- 修改
test.app
里面的Info.plist
中的bundle identifier (XcodeCodeSignDemo的bundle identifier )
- 签名
test.app
中的Frameworks中的动态库codesign -fs "你的证书" 签名的文件
- 添加MachO的可执行权限
chmod +x WeChat
-
Plugins
、watch
还是需要干掉 - 打开
Xcode
Show in FinderProducts
文件夹下的.app替换成越狱修改好的.app替换,名字要跟工程的名字一样 -
直接Run
网友评论