在iPad上检查应用程序的预配资料

3
我们正在测试一个场景,发现iPad似乎始终使用新的配置文件,即使我们安装的应用程序是用旧的配置文件签名的。
我们有一个到本月底就过期的配置文件。因此,我们更新了它,并计划通过MDM推送。我们想在这样做之前进行测试,因此我们尝试复制场景。我们生成了一个用旧PP签名的iPa,通过MDM推送并下载。现在,如果我们将iPad的日期更改为未来的日期,应用程序应该因PP无效而崩溃。但是,它仍然可以正常使用。
我们尝试通过Crashlytics安装具有新更新PP的应用程序,并按照我们的预期工作。现在,我们正在尝试通过MDM进行测试,即使您将其更改为未来日期,也一切正常。
我们怀疑iPad在某个地方存储了我们应用程序的新PP,并且它取代了旧的PP,导致应用程序始终可以正常工作。
我的问题是,我们可以检查iPad上已安装的特定应用程序的PP吗?如果我们删除应用程序,它不会从iPad中删除吗?我们可以手动从iPad中删除PP吗?如果可以,如何操作?
非常感谢您的帮助。
3个回答

5
稍微解释一下@battlemonstr的答案,当你打包时(在embedded.mobileprovision文件中),配置文件会随着.ipa捆绑在一起,这样iOS设备在安装应用程序时就可以在设备上安装PP。 安装自.ipa之后,嵌入式PP就不再相关了——它成为设备上安装的另一个PP。 当您首次尝试运行应用程序时,iOS将检查设备上是否有有效的PP,以允许应用程序运行。 它可以是与应用程序一起安装的那个,但没有理由必须是那个。 换句话说,安装的应用程序没有任何要求它使用与其捆绑在.ipa文件中的PP。
当您删除应用程序时,它不会触及设备上安装的PP。 因此,如果您先前安装了应用程序的某个版本,并且它具有到年底才过期的嵌入式PP,则安装具有已过期PP的新版本的应用程序将不会防止应用程序运行,因为设备具有有效的PP,该PP对应用程序有效,直到年底。
您可以在Xcode设备窗口中看到设备上的配置文件。 右键单击设备,然后选择“显示配置文件...”请注意,iOS会定期清理已过期的旧配置文件,因此某些旧配置文件可能已经消失。

我已经检查了安装在我的设备上的预配配置文件列表,但是我找不到与从AppStore下载的应用程序对应的预配配置文件。这意味着从AppStore下载的IPA文件没有由开发人员选择的预配配置文件。这很有趣。 - Blazej SLEBODA
是的,从应用商店分发的应用在您发布时会被苹果重新签名,因为您不希望普通用户每次从新开发者下载应用商店中的应用时都要信任开发者。预配文件是将开发和自定义构建分发到有限数量设备的机制。它引入了足够的摩擦力,以防止人们使用它来创建自己的应用商店并使用自定义签名的应用。 - wottle
为什么在提交应用到AppStore时要强制开发者创建和选择分发配置文件?如果接受没有配置文件的已签名应用程序,那不是更简单吗? - Blazej SLEBODA
理论上,如果开发者保护好他们的分发证书私钥,那么只有合法的开发者才能签署应用程序进行提交。这是为了保护苹果公司,以防其网站被黑客攻击并窃取存储在developer.apple.com上的证书。即使黑客窃取了证书,他们仍然无法获得私钥,因此无法向商店提交恶意版本的应用程序。 - wottle
此外,配置文件确保开发者必须有意识地选择应用程序将要使用哪些授权。 - wottle

1
一个配置文件是一种文件,它确认了来自苹果的权限,允许开发者Y在设备Z上运行应用程序X。X也可以是一组应用程序,但通常只是单个应用程序ID的情况下才会用于生产。Z也可以是一组设备,在生产中通常是这种情况。
把PP看作是一种由苹果签名的证书,任何人都可以验证。

我们可以检查iPad上安装的特定应用程序的PP吗?

我认为PP的副本位于应用程序包内,因此如果您可以备份设备并以某种方式提取它,您可能会在那里找到它。 (也可以参见如何查找用于构建*.ipa文件的配置文件?)

如果我们删除应用程序,它不会从iPad中删除吗?

可能不会,至少不总是。它们被安装在某些特殊的系统位置。

我们可以手动从iPad中删除PP吗?

设置应用程序有一个“常规>配置文件和设备管理”部分,通常会列出已安装的配置文件(请参见https://apple.stackexchange.com/questions/221052/ios-9-2-my-general-profiles-and-device-management-is-gone)。我不知道确切的规则,但在我的两个设备上,“配置文件和设备管理”部分是隐藏的。一些人还提到,如果您将设备连接到带有Xcode的Mac,则可以在“设备”工具/窗格中获取已安装配置文件的列表(请参见https://forums.developer.apple.com/thread/45086)。
从您的描述中,似乎您的旧应用程序和新应用程序版本都可以工作,因为系统已经为它们找到了有效的PP(在新应用程序内),并保存了它。

0

您可以通过“Windows/设备和模拟器”查看已安装在iOS设备上的PP,并根据需要删除它们。

然后右键单击您的设备,选择“显示预配文件...”

您可以从那里添加或删除所需的内容。

在启动应用程序之前,请确保在iOS设备上关闭应用程序(双击Home按钮并向上滑动您的应用程序),否则它将仅使用内存中的应用程序,这将像您最新安装之前一样工作。


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