准备工作:
//下面用到了两个文件,需要用到,没装就装一下:
//为了在我们的 app 启动的时候加载一个附加的库,我们需要插入一条额外的加载命令到主程序的 Mach-O 头中。这里我们使用optool 工具来自动化这个过程:
cd optool/
$ git submodule update --init --recursive
//我们也将使用到 ios-deploy 这个工具,这个 工具能够在不使用 Xcode 的情况下发布或者调试 iOS 。(npm 是 Nodejs 的包管理器,如果你还没有安装 Nodejs,你可以使用 homebrew 来安装,或者到官网直接下载安装包)
npm install -g ios-deploy
//查看当前证书
security find-identity -p codesigning -v
开始重签名:
//简易拿证书方法
Products -> xxxDemo.app -> 显示包 -> xxx.mobileprovision
将证书拿出来放在一个文件夹里,然后cd这个文件夹
security cms -D -i xxx.mobileprovision > profile.plist //生成plist文件
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > xxx.plist //生成.plist文件
再将application-identifier和keychain-access-groups这两个属性的后缀名改成项目中的info.plist中的Bundle identifier 例如:ABC123ABC.xx.xxxxxx
再将app包里的_CodeSignature文件夹删除,并将未砸壳并不用的包删掉
再将可执行文件允许执行 chmod 777 可执行文件地址
cd到之前证书放的那个文件夹
/usr/bin/codesign --force --sign xxx...xxx --entitlements entitlements.plist xxx (xxx...xxx 是你证书的序列号(查看当前证书可得)) (xxx 是允许执行的可执行文件)
最后将app包部署好 ios-deploy --bundle app包