新闻中心

ipa包重新签名

  • 时间:
  • 浏览:185
  • 来源:怪兽分发

软件环境 Mac: v10.12.6 (16G29) ruby: v2.3.4 rvm: v1.29.3 sigh: v2.71.1 Xcode: v9.2 应用场景 主要解决因重复打包导致测试同学回归测试的包和上传App Store的包不一致的问题。 网站封装打包

App开发测试流程

 

 

分析:一般情况下,流程如下:

 

开发同学完成开发后,打包给测试同学测试

测试同学发现bug,然后开发同学继续开发改bug、打包

测试到一定阶段后,开发同学打包(封板),测试同学做回归测试

回归测试完成之后,开发同学再次打包上传App Store

可能存在的问题:

 

多次打包,麻烦,编译一次的成本比想象中大

多次打包,可能会导致测试同学回归测试的包和上传App Store的包不一致(!important)

解决办法:

 

对回归测试通过的ipa包进行重新签名,然后上传 App Store

 

ipa包重新签名

新版本的ipa包重新签名

切换至ipa目录 

 

xxx.ipa和xxxDistrbution.mobileprovision文件在同一目录下

在终端输入sigh resign命令 

 

 

此时会看到可选择的 identities 列表

 

Signing Identity:输入用来签名的证书标识 

 

 

因为xxx.ipa和xxxDistrbution.mobileprovision文件在同一个目录下,所以省略了拖拽ipa文件和证书配置文件等步骤。

 

如果xxx.ipa和xxxDistrbution.mobileprovision文件不在一个目录下,你可能需要这样做:

在终端输入sigh resign命令

Path to ipa file: 

输入ipa文件路径(拖拽ipa文件到终端即可)

Signing Identity:输入用来签名的证书标识(同上)

Path to provisioning file: 

输入.mobileprovision文件路径(拖拽.mobileprovision文件到终端即可)

自动resign,成功

TIPS

输入的 Signing Identity 如果和 .mobileprovision文件 不一致,那么终端上仍会提示resign成功,但是,安装时会报错!

 

查看app信息(校验签名是否替换成功)

codesign -vv -d xxx.app

 

替换前(开发证书打的包)

 

 

替换后(企业证书打的包)

 

 

老版本的ipa包重新签名(已过时!!!)

# *********************** 部分命令如下: *********************** 

 

# 工程绝对路径

project_path=$(pwd)

# build文件夹路径

build_path=${project_path}/build

# 创建保存打包结果的目录

result_path=${build_path}/build_release_$(date +%Y-%m-%d_%H_%M)

mkdir -p "${result_path}"

# target名称

target_name=${project_name}

# zip的路径

zipPath=${result_path}/${target_name}_jailbroken.zip

# 解压缩

unzip ${zipPath} -d ${result_path}

# payload目录

cd ${result_path}

payload="Payload"

bundle_path="${payload}/${target_name}.app"

#删除以前的签名

rm -r "${bundle_path}/_CodeSignature" "${bundle_path}/CodeResources" 2> /dev/null | true

#替换provision

cp "${project_path}/XXXDistribution.mobileprovision" "${bundle_path}/embedded.mobileprovision"

#重新签名

codesign -f -s "${rightDistributionSign}" --resource-rules "${bundle_path}/ResourceRules.plist" "${bundle_path}"

#ipa名称

ipa_name_p="${result_path}/${target_name}_${bundleShortVersion}_${dcName}_${dcId}.ipa"

#压缩zip

zip -r "${ipa_name_p}" "${payload}"

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

现在运行,报错如下:

 

Warning: --resource-rules has been deprecated in Mac OS X >= 10.10!

网站打包APP地址www.52ez.cn