如何从应用程序中识别企业(企业)iOS 设备?

Posted

技术标签:

【中文标题】如何从应用程序中识别企业(企业)iOS 设备?【英文标题】:How to identify an Enterprise (corporate) iOS device from an app? 【发布时间】:2013-03-19 13:35:14 【问题描述】:

我正在开发一些应用程序,以便通过企业计划在公司 iPad 上分发(因此我/公司可以完全控制它们)。在公司拥有的设备的上下文中,如果有一种方法来识别运行应用程序的设备,那么“正确”是什么?

此处推荐的 CFUUIDCreate UIDevice uniqueIdentifier Deprecated - What To Do Now? 不起作用,因为多个应用程序的 id 必须相同。

现在How can I programmatically get the MAC address of an iphone 看起来是最好的方法,但我对 Apple 的东西很陌生,想知道是否有更好的方法。

iPad 是用于仓库使用的,识别设备是为了识别 iPad 分配到哪个仓库。

【问题讨论】:

【参考方案1】:

我们在我们的项目中使用 OpenUDID 作为持久性跨应用标识符作为已弃用 UDID 的直接替代品。

用法:

#include "OpenUDID.h"
NSString* openUDID = [OpenUDID value];

【讨论】:

看起来好得令人难以置信:D 我会试试看它是如何工作的。【参考方案2】:

我也运行一个企业程序,你是对的,Apple 提供的新 UUID 部分没有用。它们不仅在应用之间不一样,而且如果用户删除并重新下载您的企业应用,它们也不相同。

由于您不是通过 App Store 分发的,因此您不会因为使用 [UIDevice uniqueIdentifier] 而被关闭,并且它今天仍然可以在 ios 中使用。我亲自发送了那个和 MAC 地址,并祈祷这将在未来的版本中继续工作。 Apple 将来可能会开始为 UUID 返回 @"" 或其他一些空字符串,因此请做好准备。

【讨论】:

很高兴知道如果您不需要提交到应用商店,[UIDevice uniqueIdentifier] 仍然有效。我将按照其他答案中的建议尝试使用 OpenUDID 作为备份:) 供应商 id 将在应用程序中相同,但在设备中不同。 在最新的iOS7 SDK中,mac地址将无法使用。当您调用系统时,它们将在所有设备上返回相同的地址(02:00:00:00:00:00)【参考方案3】:

在 iOS7(测试版)中,UIDevice uniqueIdentifier 现在的行为类似于 identifierForVendor。即每个应用程序的 ID 会有所不同,并且在重新安装应用程序时也会重置。

【讨论】:

以上是关于如何从应用程序中识别企业(企业)iOS 设备?的主要内容,如果未能解决你的问题,请参考以下文章

如何在设备上安装配置证书以使用企业 iOS 帐户进行 OTA(无线)应用程序分发

我可以限制在 iOS 设备上安装企业应用程序吗?

私有 API iOS iCloud 锁 + 查找我的 iPhone 状态和唯一识别设备

iOS 应用企业部署:库的配置文件

iOS 应用的签名原理是啥?

更新内部应用程序——iOS 企业开发者计划