iOS的预配资料文件和Android的清单文件类似吗?

4
我是一名有经验的Android开发者,正在尝试了解iOS生态系统。我一直在研究"provisioning profile",但实际上不太理解它的用途。我已经阅读过以下SO文章,它让我认为provisioning profile基本上就是清单文件吗?还是类似于签名密钥库?
我的假设是因为Android清单告诉设备我的应用程序将如何表现,需要哪些服务或权限,是否可以被其他应用程序导出等等...似乎provisioning profile可能具有类似的功能?
参考问题:开发iPhone应用程序时,provisioning profile有什么用途?
2个回答

4
一个“Provisioning Profile”是iOS安全的一部分。当用户启动一个应用程序时,iOS会验证嵌入在该应用中的配置文件,以确定是否允许该应用运行。
在开发过程中,应用程序包含一个配置文件,其中列出了应用可以在哪些设备上运行(开发人员在苹果开发者门户网站上注册这些设备ID)以及签名,以验证开发人员是否拥有由苹果签署的有效证书。
当应用发布到App Store时,此配置文件将被剥离并由苹果替换为一项签名,以允许该应用在任何设备上运行。
应用程序所需的功能(例如访问相机)包含在“info.plist”文件和应用程序代码中;该文件指定显示给用户的原因,但代码负责请求访问权限。仅在“info.plist”中声明使用字符串不会提示用户授予权限。这样,可以在用户清晰了解情境的时候发送权限请求。例如,在他们单击应用中的“相机”按钮时。

啊,谢谢你澄清了这一点。所以为了本地测试,我必须在线上添加我的测试设备ID到一个配置文件中,下载该配置文件并将其放入我的应用程序中。当我需要发布我的应用程序时,这个配置文件就不再需要或有用了,因为我没有每个苹果设备的设备ID(但苹果有,所以他们会为我创建一个配置文件)。 - Bqin1
1
是的,但 Xcode 可以为您管理所有这些。当您尝试在连接到 Mac 的新设备上运行应用程序时,它可以创建配置文件并注册新设备。如果您要远程向某人发送应用程序进行测试(而 TestFlight 可能是更好的方法),则只需要手动添加设备。 - Paulw11
为了澄清,苹果并不知道每个设备的ID,而是iOS信任模型知道由苹果签名的应用程序可以在任何设备上运行,因此它不会在配置文件中检查设备ID。 - Paulw11

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接