ipa包重新签名

作者: chernyog | 来源:发表于2018-01-03 11:59 被阅读168次

软件环境

  • Mac: v10.12.6 (16G29)
  • ruby: v2.3.4
  • rvm: v1.29.3
  • sigh: v2.71.1
  • Xcode: v9.2

应用场景

主要解决因重复打包导致测试同学回归测试的包和上传App Store的包不一致的问题。

App开发测试流程

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

  1. 开发同学完成开发后,打包给测试同学测试
  2. 测试同学发现bug,然后开发同学继续开发改bug、打包
  3. 测试到一定阶段后,开发同学打包(封板),测试同学做回归测试
  4. 回归测试完成之后,开发同学再次打包上传App Store

可能存在的问题:

  • 多次打包,麻烦,编译一次的成本比想象中大
  • 多次打包,可能会导致测试同学回归测试的包和上传App Store的包不一致(!important

解决办法:

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

ipa包重新签名

新版本的ipa包重新签名

  1. 切换至ipa目录



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

  2. 在终端输入sigh resign命令

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

  3. 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}"

现在运行,报错如下:

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

相关文章

  • bibibi ipa包重签名

    ios ipa包重签名 作用 保持bundleid不变,重新用企业证书签名,分发。 流程 解压你所要签名的ipa包...

  • iOS ipa重签名

    关于ipa包重新签名 有时候打包没有更改plist文件,需要重新打包。重新打包时间比较久,可以进行ipa重签名,不...

  • iOS 之重签名

    大神文章预读 mac用终端对ipa包重新签名iOS逆向一步一步教你重签名ipa包 步骤 一、安装Homebrew ...

  • ipa包重新签名

    软件环境 Mac: v10.12.6 (16G29) ruby: v2.3.4 rvm: ...

  • ipa包重新签名

    准备工作 已经经过破壳处理的iTunes ipa包或者第三方越狱应用等; 开发者测试证书和描述文件; 签名工具:s...

  • ipa包重新签名

    重新签名顾名思义:将原来的ipa包,使用新的证书重新签名,然后可以在指定的设备上安装,比如:我们需要将一个别人的i...

  • 苹果企业证书签名

    使用sigh脚本开始.ipa安装包重新签名 1、在终端输入fastlane sigh resign ipa路径2、...

  • iOS逆向实战--014:应用重签名

    应用重签名,就是把已经存在的ipa包,重新配置一套证书和描述文件,再签名生成一个新的ipa包 codesign重签...

  • iOS企业签重签TF签ios逆向修改ipa包中的info.pli

    本文介绍在没有源码,只有ipa包的时候,修改ipa包中的配置信息,并且重新签名,提交App Store。 流程: ...

  • ipa重签名最直接的教程

    ipa 包重签名最新最简单教程 重签名的意义:ipa 重签名最大的用处是,不必重新打包,和配置其它第三方获取 ap...

网友评论

    本文标题:ipa包重新签名

    本文链接:https://www.haomeiwen.com/subject/blrhnxtx.html