再谈 iOS 重签名

作者: 堕落天使Z | 来源:发表于2016-11-25 16:50 被阅读598次

哪些场景需要我们自己动手去做重签名呢?举个例子,由于业务的需要,在不发布 AppStore 的情况,需要将自己的 APP 分发给外部企业用户使用,我们是不能把用我们自己企业证书打的包给到外部用户的,因为这违反了 AppStore 企业证书授权协议,一旦被苹果发现,那么这个企业下的所有 APP 可能都会被强制下架,并且永久封号。


iOS 重签名流程如下:

ipa_

其实 iOS 的重签名很简单(文件路径自定义)步骤如下:

  1. 解压 ipa 安装包
unzip YiMa-Release.ipa
  1. 删除 app 原有签名
rm -rf Payload/YiMa.app/_CodeSignature/
  1. 替换证书配置文件
cp YiMa_production_provision_profile.mobileprovision Payload/YiMa.app/embedded.mobileprovision
  1. 重签名
codesign -f -s "iPhone Distribution: Zhejiang Cainiao Supply Chain Management Co., Ltd." --entitlements entitlements.plist  Payload/YiMa.app
  1. 重新打包
zip -qr app-resigned.ipa Payload/

重签名过程中遇到的坑

  1. 在 iOS8之后,code sign 如果不添加 --entitlements entitlements.plist 参数的话,会导致重签名之后的 app 无法启动,跟踪堆栈会发现如下的 log 输出:
var/mobile/Media/PublicStaging/YiMa.app/ : Error Domain=LaunchServicesError Code=0 "The operation couldn’t be completed. (LaunchServicesError error 0.)" UserInfo=0x13f627620 {Error=ApplicationVerificationFailed, ErrorDescription=Application is missing the application-identifier entitlement.}

解决方法是创建一个 entitlements.plist 文件,参考:http://stackoverflow.com/questions/28195564/enterprise-app-deployment-doesnt-install-on-ios-8-1-3

  1. 重签名成功,但是通过 Xcode 无法安装,错误如下
6ba57f8d621b7559b59b94a37a1c53098f9ad3d1.png

这个问题困扰了了很久,原因是如果你的 APP 需要 APNs 推送,那么 在 developer.apple.com 中 创建的 App ID 必须勾选 Push Notifications 功能选项,你的 provisioning profile 文件中必须包含以下字段(可以通过 Sublime 等编辑器查看)

<key>aps-environment</key>
<string>production</string>

相关文章

  • 再谈 iOS 重签名

    哪些场景需要我们自己动手去做重签名呢?举个例子,由于业务的需要,在不发布 AppStore 的情况,需要将自己的 ...

  • 完善改写重签名Mac工具

    参考: iOS App 签名的原理 iOS企业重签名问题及经验 iOS重签名工具开发之路(介绍篇) ios-app...

  • iOS重签名

    重组 IPA (打包再签名) - 窥打包签名流程 iOS数字签名及ipa重签名 ipa重签名的四种方式 ios 企...

  • iOS应用重签名

    说到iOS重签,那么就应该了解iOS正常签名流程是什么,然后才能知道,我们重签名从哪几个地方入手。 iOS签名 代...

  • 逆向学习笔记

    重签名:iOS App 签名的原理--总结的非常细,一看就明白逆向学习笔记9——代码重签名ios-app-sign...

  • iOS开发逆向之应用重签名(上)

    本文主要介绍重签名的几种方式,以及如何对应用进行重签名, 应用重签名 从之前《iOS逆向应用签名》中可知,签名是指...

  • 【iOS开发】ipa 包修改及重签名

    iOS逆向 ipa包重签名

  • iOS逆向-ipa包重签名及非越狱手机安装多个微信

    iOS逆向-ipa包重签名及非越狱手机安装多个微信 iOS逆向-ipa包重签名及非越狱手机安装多个微信

  • iOS 签名&重签名

    前言 前段时间因为要做防止重签名的工作,在这方面的理解出现了错误,所以现在来整理下。 主要内容包括: App签名 ...

  • 重签名

    iOS逆向 ipa包重签名 检查iOS项目中是否使用了IDFA

网友评论

  • 行走在北方:用distribution的IPA包重签名后的APP打开就闪退,不知道怎么回事
  • TheLazyCoder:重签名后,打包的iPa怎么通过xcode安装呢?我也卡在证书无效哪一个问题很久了,明天试一试你的办法:kissing_heart:

本文标题:再谈 iOS 重签名

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