文章背景
最近在接游戏发行方SDK时,游戏发行方提供的.mobileprovision文件不符合我司自动打包时配置的一些参数格式。我司让发行方重新生成.mobileprovision 文件,发行方拒绝了并告诉我司可以直接打开.mobileprovision 文件并修改其中的 name (含义为.mobileprovision文件名)值。
我的第一反应是该文件无法被修改,且修改后不能用。但为了在后续沟通中占据主导权,我研究了一下 .mobileprovision 文件的修改。
基础介绍
.mobileprovision 文件是由苹果生成的二进制文件,内部结构完全由苹果定义。
.mobileprovision 文件用于应用的签名和授权。它包含了应用程序标识符、开发者证书、设备列表等信息。
- 申请*
.mobileprovision* 文件, 可参考 iOS证书(.p12)和描述文件(.mobileprovision)申请指南
另外,直接修改二进制文件极大可能导致文件损坏或无效。
1、查看 .mobileprovision
.mobileprovision文件是二进制文件,使用文本编辑器(如TextEdit、Sublime Text、Visual Studio Code等)打开.mobileprovision文件,会看到一些乱码。
- 使用Xcode查看
mobileprovision文件:
- 这种方式只能看到
mobileprovision文件的部分内容,无法编辑。

- 使用终端指令查看*
mobileprovision文件:security cms -D -i /path/to/your.mobileprovision
- 可以查看
mobileprovision文件所有内容,无法编辑。

2、编辑.mobileprovision
通过终端指令的方式编辑.mobileprovision:
- 使用命令行工具
security导出.mobileprovision文件的内容,将其保存为文本文件:security cms -D -i /path/to/MobileProvision.mobileprovision > output.plist - 打开导出的
output.plist文件,可以使用文本编辑器或命令行工具进行修改。找到"name"键所对应的值,并进行修改。

- 修改完成后,将
output.plist文件重新导出为.mobileprovision文件:
security cms -D -i output.plist -o modified.mobileprovision - 执行完 3 后,终端报错,但仍旧生成了
modified.mobileprovision。

- 双击打开
modified.mobileprovision,Xcode报错:

- UUID可以理解为文件的唯一标识,在
linux中经常用,因为linux一切皆文件,所以你的硬件设备也是文件,他也会有UUID。 - 每个文件都有UUID,UUID是通过系统自动生成的。我们无法操控。
3、结论
- 苹果不允许我们手动修改
.mobileprovision文件; - 修改
.mobileprovision文件 前后,该文件的 MD5值发生变化; - 经测试,在删除
.mobileprovision文件后,Xcode也会提示UUID属性缺失。猜测UUID就是简单的UUID,XcodeUUID错误,也只是新的.mobileprovision文件没有通过过苹果认证然后报错的,只是就是展示了这个错误而已。
文章讲述了在尝试修改游戏发行方提供的不合规格的.mobileprovision文件过程中遇到的问题。作者发现苹果的.mobileprovision文件是二进制格式,包含应用标识符、开发者证书和设备信息,且不支持直接修改。通过securitycms命令行工具可以查看和导出文件内容,但修改后会导致文件MD5值变化,可能使文件失效或无法通过苹果认证。因此,苹果并不允许这种操作,修改后的文件在Xcode中无法正常使用。
1万+

被折叠的 条评论
为什么被折叠?



