-
- 准备
-
1.1 获取一个破壳的 ipa 包
可以通过 pp 助手下载现成的破壳 app, 我下载的 QQ 音乐.
pp.png
将 ipa 包中的.app文件 Copy 出来备用, 查看.app包是否被破壳:$ codesign -vv -d QQMusic.appcodesign.png
查看 .app文件的加密状态, crypt==0可用! crypt==1, 未解密, 不可用!
$ otool -l QQMusic | grep crypt

crypt.png
-
1.2 Appledeveloper 开发者证书
通过本地 CSR 从Appledeveloper 网站申请开发者证书, 安装到钥匙串.
cer.png
查看本地证书列表, 复制名称, 备用
$ security find-identity -v -p codesigningcerlist.png -
1.2 描述文件(.provision profile)
新建一个 xcode 工程, 编译后会在 app 包里生成一个.mobileprovision文件, 直接 copy 到跟.ipa 同级目录下.
prov.png -
- 配置
-
2.1 删除插件
将.app中的插件全部删除
plugin.pngwatch.png -
2.2 对 .framework 进行重签名
如果.app中有 Framework 文件夹, 需要对其中库进行重签名(QQ音乐没有)$ codesign -fs "iPhone Developer: xxx (J5HYSJ3F78)" xxx.framework -
2.3 修改可执行文件为可执行
$ chmod +x qqMusic
exec.png-
2.4 配置描述文件
查看本地描述文件信息:$ security cms -D -i embedded.mobileprovision

provision.png
将签名信息 copy, 生成一个 .plist 文件, 让后将.plist文件 Copy 到 .app 同级目录下.

plist.png

描述.png
2.5 修改 bundleID
将.app中Info.plist文件中的bundleid与新建的 xcode 项目Info.plist文件中对应的bundleid设置成相同值.2.6 开始签名
$ codesign -fs "iPhone Developer: xxx (J5HYSJ3F78)" --no-strict --entitlements=em.plist QQMusic.app

sign.png
- 2.7 生成
.ipa包, 安装测试
亲测, 手动重签名成功, 🍺🍺🍺!!!







