前面讲到Xcode编译语句中,可以带签名的参数,那么如果如果我们想要直接对一个东西签名,怎么弄捏?
我们可以用code sign命令(自己百度啦)
/usr/bin/codesign --force --sign 证书ID 需要签名对象
另外,强烈推荐Github上两个大牛的杰作:
https://github.com/maciekish/iReSign
https://github.com/guangmingwan/iReSignShell
第一个是直接提供了一个界面化的操作,我们可以分析代码:
if (![[NSFileManager defaultManager] fileExistsAtPath:@"/usr/bin/codesign"]) {
[self showAlertOfKind:NSCriticalAlertStyle WithTitle:@"Error" AndMessage:@"This app cannot run without the codesign utility present at /usr/bin/codesign"];
exit(0);
}
从而知道,其实也是用的上面的代码,只是GUI封装了一下
而下面的iReSignShell就是命令行化罢了。不过要注意的是,生成iReSignShell是一个exec执行文件(二进制)
要作为工具添加到我们环境变量,或者得用绝对路径。
附有使用方法:
iResignShell -s "iPhone Distribution: SMARTMZ" -m My.mobileprovision My.ipa