在iPad

时间:2018-06-07 07:52:17

标签: ios objective-c iphone ipad provisioning-profile

我们正在测试一个场景,即使我们安装了使用旧配置文件签名的应用程序,iPad似乎也会随时使用新的配置文件。

我们的配置文件将于本月底到期。因此,我们更新了它,它将由MDM推动。我们想在测试之前对其进行测试,因此我们尝试复制方案。我们生成了一个签署到旧PP的iPa,通过MDM推送并下载它。现在,如果我们将iPad的日期更改为未来日期,那么它应该会因PP无效而崩溃。但是,它仍然有效。

我们尝试使用新的PP通过crashlytics安装应用程序,它按照我们的期望工作。现在,我们尝试通过MDM进行测试,即使您将其更改为未来日期,它也可以正常运行。

我们怀疑iPad存储了我们应用程序的新PP,它取代了旧的PP,导致应用程序一直在运行。

我的问题是,我们可以查看iPad中安装的特定应用的PP吗?如果删除应用程序,是否会从iPad中删除?我们可以从iPad手动删除PP吗?如果是这样,怎么样?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:3)

要详细说明@ battlemonstr的答案,当您打包(在embedded.mobileprovision文件中)时,配置文件与.ipa捆绑在一起,以便iOS设备可以在设备上安装PP应用已安装。从.ipa安装后,嵌入式PP无关紧要 - 它只是设备上安装的另一个PP。当您第一次尝试运行该应用程序时,iOS将检查设备上是否存在允许该应用程序运行的有效PP。它可以是与应用程序一起安装的,但没有理由。换句话说,安装的应用程序没有任何要求它使用.ipa文件中捆绑的PP的任何内容。

删除应用时,它不会触及设备上安装的PP。因此,如果您以前安装了该应用程序的某个版本,并且它有一个嵌入式PP,直到今年年底才到期,那么使用已经过期的PP安装新版本的应用程序将无法阻止该应用从运行开始,因为该设备有一个PP,该PP对于直到年底才会过期的应用程序有效。

您可以在Xcode设备窗口中查看设备上的配置文件。右键单击设备,然后选择"显示配置文件..."请注意,iOS会尝试清理不时过期的旧配置文件,因此一些旧配置文件可能会消失。

答案 1 :(得分:1)

供应配置文件是一个文件,用于确认Apple在设备Z上从应用程序开发人员Y运行应用程序X的权限.X也可以是一组应用程序,但对于生产案例,通常它只是一个应用程序ID。 Z也可以是一组设备,对于生产来说通常就是这种情况。

将PP视为Apple签署的一种证书,任何人都可以验证。

  

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

我认为PP的副本位于app包内,所以如果你可以备份设备并以某种方式提取它,你可能会在那里找到它。 (另见How to find out what profile was used for building *.ipa file?

  

如果删除应用程序,是否会从iPad中删除?

可能不是,至少并非总是如此。它们安装在一些特殊系统的位置。

  

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

“设置”应用有一个部分"常规>配置文件和设备管理"  通常包含已安装配置文件的列表(请参阅https://apple.stackexchange.com/questions/221052/ios-9-2-my-general-profiles-and-device-management-is-gone)。我不知道有关它的确切规则,但在我的2台设备上,这些"配置文件和设备管理"部分是隐藏的。 有些人还提到如果你用Xcode将设备连接到Mac,那么在"设备"在工具/窗格中,您还可以获得已安装配置文件的列表(请参阅https://forums.developer.apple.com/thread/45086)。

根据您的描述,您的旧应用和新应用版本似乎都在运行,因为系统已经为它们(在新应用内部)找到了有效的PP并保存了它。

答案 2 :(得分:0)

您可以查看在iOS设备上为应用安装了哪些PP,并通过“ Windows /设备和模拟器”将其删除(必要时)

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

然后您可以根据需要从那里添加或删除。

请确保在启动之前杀死iOS设备上的应用程序(双击“主页”按钮并向上滑动您的应用程序),否则它将仅使用内存中的一个即可使用最新安装之前的版本。