ipa文件重新签名的方法
2016-03-28 15:27
267 查看
今天要给大家介绍两种app重新签名的方法, 做一下记录方便需要的朋友。
1. 通过Xcode重答名
2. 直接修改已签名的iPA文件
用Xcode打过包的朋友都知道,只需要在Xcode中点两下,就可以签名了,这种方法比较简单直观。今天要介绍的是打包后,不同Mac上重新签名的方法,即传播Xcode Archive.
在Xcode中archive成功后,点击Distribute后,我们选择第三个选项:Export as Xcode Archive:
然后我们就会得到一个后缀为xcarchive的文件,用于Mac间传递。现在我们就可以将这个.xcarchive文件发给其它同事,同事收到后双击,就可以在Xcode中打开,接着它就可以Submit to the iOS App Store或Save for Enterprise or Ad Hoc Deployment. 这样就可以达到重签名的目的
其实iPA文件就是zip文件,只是后缀不同而已。要重签名,我们需要准备证书与provision profile, 证书直接在Keychian里管理,provision profile与证书是对应关系。 真机调试或提交过App到App Store的朋友都应不会陌生。
下面直接说步骤:
a.解压iPA文件
b.删掉旧的签名文件
c.拷贝新的provision profile替换旧的embedded.mobileprovision
d.用codesign命令重签名
f.重新zip为iPA文件
下面有一个脚本,它完成了上面5步骤:
需要注意脚本中有两处需要你们手动修改,第一处是123.mobileprovision,这个文件需要与脚本放同一目录,第二处是XXXXX (XXX), 这儿XXX改为你keychian里有的证书,只需要改XXX, 括号保留。
保存并修改上面的脚本为resign.sh,再将需要重签名的xxx.ipa与123.mobileprovision文件置于同一目录。然后运行命令:
成功后,在目录里会多一个重签名的abc.ipa
1. 通过Xcode重答名
2. 直接修改已签名的iPA文件
1.通过Xcode重答名
用Xcode打过包的朋友都知道,只需要在Xcode中点两下,就可以签名了,这种方法比较简单直观。今天要介绍的是打包后,不同Mac上重新签名的方法,即传播Xcode Archive.在Xcode中archive成功后,点击Distribute后,我们选择第三个选项:Export as Xcode Archive:
然后我们就会得到一个后缀为xcarchive的文件,用于Mac间传递。现在我们就可以将这个.xcarchive文件发给其它同事,同事收到后双击,就可以在Xcode中打开,接着它就可以Submit to the iOS App Store或Save for Enterprise or Ad Hoc Deployment. 这样就可以达到重签名的目的
2.直接修改已签名的iPA文件
其实iPA文件就是zip文件,只是后缀不同而已。要重签名,我们需要准备证书与provision profile, 证书直接在Keychian里管理,provision profile与证书是对应关系。 真机调试或提交过App到App Store的朋友都应不会陌生。下面直接说步骤:
a.解压iPA文件
b.删掉旧的签名文件
c.拷贝新的provision profile替换旧的embedded.mobileprovision
d.用codesign命令重签名
f.重新zip为iPA文件
下面有一个脚本,它完成了上面5步骤:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #!/bin/sh if ! ([ -f "$1" ]); then echo \"${1}\"文件不存在 exit fi ipaName=${1%.ipa} if [ "$ipaName" = "$1" ]; then echo \"${1}\"不是ipa文件 exit fi ## step 1, unzip ipa file unzip ${ipaName}.ipa ## step 2, remove old codesign rm -rf Payload/*.app/_CodeSignature/ ## step 3, copy new provision profile cp 123.mobileprovision Payload/*.app/embedded.mobileprovision ## step 4, codesign with new certificate and provision (/usr/bin/codesign -f -s "iPhone Developer: XXXXX (XXX)" --resource-rules Payload/*.app/ResourceRules.plist Payload/*.app/) || { ## if code sign error, will to here echo failed rm -rf Payload/ exit } ## step 5, zip it zip -r ${ipaName}abc.ipa Payload/ rm -rf Payload/ |
用法
保存并修改上面的脚本为resign.sh,再将需要重签名的xxx.ipa与123.mobileprovision文件置于同一目录。然后运行命令:1 2 | chmod 777 resign.sh ./resign.sh xxx.ipa |
相关文章推荐
- 【OpenCV】OpenCV的类型转换问题(BYTE、IplImage、Mat等)
- mongodb语法
- 关于iOS性能调优
- easyui datagrid里的toobar按钮隐藏、显示、禁用等方式的实现
- Linux内核访问外设I/O资源的方式
- js如何获取上个月第一天和最后一天
- React Native第2天——底层原理了解
- 10013---SpringMVC与Struts2区别与比较总结
- css中字体的设置
- 文本分类——KNN算法
- java函数返回类型
- ORA-04063: view "DAILY.TMP_TBX_100_0_S4" 有错误
- 3.2016年 物电学院 电气工程及其自动化专业 辛雅松 15050341033
- Swift-Swift的Singleton三种写法
- mac下的一些命令
- 布局
- HTTP/2 对 Web 性能的影响(上)
- Yii中使用Gii生成代码时碰到“Setting unknown property: yii\web\Application::gii”
- NGUI 层次
- oracle in 加select查询语句提示无效的字符