先dump出ipa,解压出app然后查看是否加密(加壳),如图所示。
0表示没有加密。
打开包,查看有多少frameworks,因为这些全部要签名的。
查看自己的证书信息。
security find-identity -v -p codesigning
一个个签名。
codesign -fs "iPhone Developer:xxxxxxx" libswiftAVFoundation.dylib
然后用xcode新创建一个项目生成。
打开项目包。
拷贝描述文件到要重签名的app下面。
然后修改重新签名的id,为新创建的id。
在刚刚的embedded.mobileprovision文件中提取权限plist文件。名称必须是entitlements.plist
因为这个文件是加密的所以要用工具看。
security cms -D -i /Users/haidragon/Library/Devcode/DerivedData/test_text-awscmazqxiqnebdunrgyqmtpejxx/Build/Products/Debug-iphoneos/test_text.app/embedded.mobileprovision
把下面这一段拷贝出来。
我们可以借用xcode创建entitlements.plist,打开xcode创建plist文件。
代码方式打开。
拷贝
一定要能这样查看,不行说明拷贝错了。
还一个容易忘记的是查看二进制文件是否可以执行。不然 777修改它。
最后一步是用plist文件签名app包。
codesign -fs "iPhone Developer: xxxxxxx" --no-strict --entitlements entitlements.plist ./iRime.app
查看签名信息。
codesign -d -vv ./iRime.app/
最后是压缩成ipa包 刚刚plist文件不要一起打包。
zip -ry iRime.ipa Payload
现在安装到手机上。同样借用xcode
添加ipa
发现无法安装,还得把插件删除了。有Watch也得删除。然后重新签名打包。删除东西可能会导致闪退,没办法插件这些东西没法签名。
这样就可以了。
然后可以xcode附加调试了。
原文地址:https://blog.51cto.com/haidragon/2406169
时间: 2024-09-30 19:26:06