> ipa签名 >

【iOS测试系列】IPA文件的重签名! - 知乎

2020-04-21 阅读:


在开发或测试的过程中,我们有可能会将ipa重签名,来达到成功测试的目的,本期小编给大家带来的是如何对ipa文件进行重签名操作。 授权文件(.mobileprovision)和签名证书文件(.cer)

Apple对其设备有严格的使用限制,任何应用程序都必须经过iTunes Store下载安装,要么直接从设备里下载,要么从电脑中通过iTunes下载后同步到设备中。所以没有经过破解的设备是没有办法直接安装IPA文件的。但是Apple也提供了一套面向开发者的机制,让他们可以在指定的设备上安装IPA文件来测试和开发,这个机制的核心就是开发者授权。

用开发者授权是一套完整而且相对合理的流程,它可以分为下面几个阶段:

授权设备:将开发者授权与指定的设备绑定在一起,使得这些设备可以自由安装开发者发布的IPA。 生成授权文件.mobileprovision:这个文件会被打包进入IPA,实现设备与授权开发帐号的绑定。 生成证书文件.p12:这个文件也会被打包进入IPA,实现应用发行商的签名以及身份验证。 除此之外,开发者授权系统还提供了开发(Development)和发布(Distribution)两个不同的渠道。开发测试的时候需要设备的绑定而实现在设备上单独安装IPA,发布的时候则不需要绑定设备。所以开发与发布需要使用不同的.mobileprovision与.cer文件。 所以一个ipa是受到授权文件和签名文件共同保护的,想要重签名,那么就需要替换掉授权文件(.mobileprovison)和签名文件(.cer)。

准备工作

1)iResign,mac上的重签名工具。 2)原始的ipa文件, 3)授权文件(xx.mobileprovision) 4)修改后的bundleidentifier 5)entitlements.plist(签名需要,但不是必须)

重签名操作过程

1)将ipa文件,通过/usr/bin/unzip命令,解压缩,得到Payload文件夹和再修改itunesMetadata.plist(有些盗版ipa可能没有这个plist文件) 2)如果需要修改bundle identifier,那么修改Payload/XXX.app/info.plist里面的CFBundleIdentifier和再修改itunesMetadata.plist里面的softwareVersionBundleId 3)将Payload/XXX.app/embedded.mobileprovision替换成提供的mobileprovision(注意名字要重命名为embedded.mobileprovision) 4)检查embedded.mobileprovision文件,得到mobileprovisionidentifier,如果这个identifier的开头与info.plist里面的CFBundleIdentifier的开头相同,并且以星号"*"结尾,那么可以重签名;如果不是以星号"*"结尾,那么判断这个identifier与info.plist里面的CFBundleIdentifier是否相同,如果相同,则可继续进行 5)利用/usr/bin/codesign -f -s"iPhone Distribution: Company Certificate" --resource-rulesPayload/MyApp.app/ResourceRules.plist Payload/XXX.app 来重新签名,如果之前提供了entitlements.plist那么在这里需要增加参数--entitlements=entitlements.plist 6)利用codesign-v Payload/XXX.app 7)压缩Payload文件夹,得到重签名后的ipa文件。


网站友情链接: 微信号购买平台 微信号出售 买微信号 刷票 微信刷票 微信投票 快手刷粉丝 微信号出售 微信号批发 微信号购买 王者荣耀代练 苹果超级签名 ios超级签名 超级签名 刷票 王者荣耀代练 ios企业签名