重签名ipa
来源:互联网 发布:网络授课老师招聘 编辑:程序博客网 时间:2024/05/22 01:55
参数说明
appName.ipa:要重签名的ipa
newEmbedded.mobileprovision: 用来签名的provision文件
distributionName:指该签名对应的证书的名字,在keychain中找到对应证书的名称。
第一步
解压IPA
#shellunzip appName.ipa
unzip -o -d /home/sunny myfile.zip把myfile.zip文件解压到 /home/sunny/-o:不提示的情况下覆盖文件;-d:-d /home/sunny 指明将文件解压缩到/home/sunny目录下;
第二步
删除旧的代码签名
#shellrm -rf Payload/ appName.app/_CodeSignature
第三步
更换证书
#shellcp newEmbedded.mobileprovision Payload/appName.app/embedded.mobileprovision
第四步
重签名
#shell /usr/bin/codesign -f -s "iPhone Distribution: distributionName" --resource-rules Payload/appName.app/ResourceRules.plist Payload/appName.app
第五步
重新打包,生成新的ipa
#shellzip -r New_ appName.ipa Payload
可能的问题
在第四步时有可能会报错:object file format unrecognized, invalid, or unsuitable
解决方法:
1)首先查看/usr/bin目录下是否存在codesign_allocate程序,如果存在,执行改名操作。 如果不存在,直接执行第二步#shellsudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old
2)将xcode目录下的codesign_allocate做一个软链接
#shellsudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin
entitlements.plist授权文件
重签名时可能需要处理。
在签名shell codesign中加入参数:
--entitlements entitlements.plist
下面的XXXXXXXXXX可以cat bundleId.mobileprovision 文件得到
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>application-identifier</key> <string>XXXXXXXXXX.bundleId</string> <key>aps-environment</key> <string>production</string> <key>get-task-allow</key> <false/> <key>keychain-access-groups</key> <array> <string>XXXXXXXXXX.*</string> </array></dict></plist>
附:
额外功能
- 查看profile的UDID
#shellmobileprovisionFileName = ""mobileprovision_uuid=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i ${mobileprovisionFileName})`echo "UUID is:"echo ${mobileprovision_uuid}
0 0
- ipa重签名
- ipa 重签名
- ipa重签名
- IPA重签名
- ipa重签名
- ipa重签名
- 重签名ipa
- IPA重签名
- ipa重签名
- iOS ipa重签名 、resign
- ipa多目标重签名流程
- iReSign对ipa重签名
- IOS 打包、安装、重签名 .app & .ipa
- iOS证书及ipa包重签名
- ipa重签名启动奔溃(-42112)
- iOS逆向 ipa包重签名
- ipa重签名2(.dylib注入)
- iOS开发笔记-ipa重签名
- 关于maven项目导入后报错的原因
- APK签名流程
- maven 嵌入式tomcat-修改端口的方法
- 暴力,组合数学(ZOJ 3779,Chessboard and Flowers)
- bootstrap-table前端常见问题
- 重签名ipa
- 导入新工程时,解决"Migrate Project to Gradle"的方法
- python中的set学习
- Openresty 编译
- 【Hbase】单机模式与伪分布式模式安装
- Windows 程序启动性能优化
- 【Unity3D】按钮组ToggleGroup的制作,UGUI用户输入的获取,利用持久化数据PlayerPrefs在场景中传值
- 设计模式之建造者模式
- (UCOS)OSTaskSuspend挂起任务