签名相关知识
#
1.列出所有证书- 方式一
security find-identity -p codesigning -v
- 方式二
security find-identity -v -p codesigning
#
2.生成 entitlements.plist新建一个 Xcode iOS App 项目,编译生成目标 App.从目标App 中获取 embedded.mobileprovision, 或者从开发者账号后台下载 Provisioning Profile文件,然后提取其中的授权文件(注意:授权文件中的 Bundle ID 要和重签名应用的 Bundle ID 匹配),具体如下
security cms -D -i embedded.mobileprovision > profile.plist/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' profile.plist > entitlements.plist
#
3.复制mobileprovison 到. app 目录下#
4.签名,#
4.1.对. app 文件夹中的所有动态库-插件- watch 目录下的 extension 进行签名codesign -f -s E667ADE527274C51B22E1EDB77E476204700A44F xxx.dylib
#
4.2.对整个. app 文件夹进行签名,具体如下codesign -f -s E667ADE527274C51B22E1EDB77E476204700A44F --entitlements entitlements.plist WhatsApp.app
#
5.打包 ipamkdir Payloadcp -r Target.app ./Payloadzip -qr Target.ipa ./Payload
#
6.查看CertificateSigningRequest.cerSigningRequest 文件openssl asnlparse -i -in CertificateSigningRequest.cerSigningRequest
#
7.查看 iOS_develoment.cer文件openssl x509 -inform der -in ios_development.cer -noout -text
#
8.解压 /usr/bin/unzip -q xxx.ipa -d <destination>
#
9.签名 dylib 或者 extension#
9.1方式一codesign -fs E667ADE527274C51B22E1EDB77E476204700A44F xxx.dylib
#
9.2方式二codesign --force --verify --verbose --sign "iPhone Developer: xxx xxxx (xxxxxxxxxx)"dumpdecrypted.dylib
#
10.查看签名信息codesign -vv -d xxx.app
#
11.验证签名 codesign --verify xxx.app
#
常见错误#
main executable failed strict validationcodesign -f -s xxxxxx --no-strict --deep libcklib.dylib