-
使用Offline砸壳过的ipa示范
-
简单使用到到命令介绍
codesign -d Offline.app #查看可执行文件路径
codesign -d -v Offline.app #查看更详细的信息
codesign -d -vv Offline.app #查看更详细的信息,包含签名信息
codesign -fs “证书串” --no-strict --entitlements=权限文件.plist APP包 #签名.app包
codesign -fs “证书串” 目标文件.framework #签名Frameworks目录下的可执行文件
codesign --force --verify --verbose --sign "证书串" 目标文件.dylib #dylib 签名
security find-identity -v -p codesigning #查看本地可用的证书
security cms -D -i embedded.mobileprovision #查看描述文件
chmod -R 777 二进制文件 #给二进制可执行文件权限
Zip -ry 压缩后输出文件名 要压缩的文件 #压缩文件
-
创建一个Xcode iOS项目
主要是获取embedded.mobileprovision描述文件
编译 -- 真机调试 -- 才能生成描述文件
img.png
img.png
有效期只有6天,拷贝embedded.mobileprovision描述文件到Offline.app目录下
img.png
img.png
修改需要签名文件夹里面的Info.plist文件,将之前Xcode里面的BundleID替换到Info.plist文件对应的地方
img.png
img.png
修改Info.plist文件后保存
img.png
-
创建权限文件
security cms -D -i embedded.mobileprovision #查看描述文件
复制红框内代码
img.png
com + N 选择创建 XX.plist文件
img.png
切换模式编辑plist文件
img.png
复制红框内代码粘贴到plist文件
img.png
切换回来的模式
img.png
img.14.png
拷贝文件,.plist文件 可以重命名,建议不要有空格
我把Property List.plist重命名为 re.plist
img.png
-
准备签名
-
签名注意-免费证书不能签名的东西
第三方库签名不了,注意检查第三方库,没有就过滤掉,有就删除
例如:Pluglns目录下的文件
Offline.app/XXX.app下包含有第三方库 把整个XXX.app删除
-
可签名
Frameworks目录下有.framework可执行文件必须一个一个签名
codesign -fs “证书串” 目标文件.framework #签名Frameworks目录下的可执行文件
dylib 文件签名
codesign --force --verify --verbose --sign "证书串" 目标文件.dylib #dylib 签名
-
查看证书串
security find-identity -v -p codesigning #查看本地可用的证书
-
开始签名.app
codesign -fs “证书串” --no-strict --entitlements=权限文件.plist APP包 #签名.app包
这里算把Offline.app签名完成了
新创建Payload目录,把Offline.app放进去
然后Payload目录压缩,压缩后文件后缀名重命名为ipa
Zip -ry 压缩后输出文件名 要压缩的文件 #压缩文件
-
安装签名好的ipa
img.png
安装的手机 ID 必须是和证书的一样,否则会提示设备不一,等待安装完成,安装完成后手机桌面会显示安装好的图标
-
安装报错解决
The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).
注意BundleID 包名不能有非法数字开头
重新检查编写的权限文件.plist 是否有错误
-
制作越狱版ipa
只需要对砸壳的二进制可执行文件重新签名就可以了
codesign -fs “证书串” 可执行文件 #签名二进制可执行文件
img.png
前提需要安装有AppSync Unified插件(第一次安装需要重启才生效)
不签名可能会安装失败或者打开闪退
.app 目录下的embedded.mobileprovision描述文件删除
Payload
-----xxx.app
压缩后,后缀名重命名为ipa
网友评论