2013-05-13 65 views
1

安裝完MDM配置文件後,設備向服務器 註冊MDM;服務器會從設備的以下響應(S):Apple沒有UDID的移動設備管理

身份驗證

{'Topic': 'com.apple.mgmt.External.dadd0670-xxx', 'UDID' 
: 'xxxx', 'MessageType': 'Authenticate'} 

TokenUpdate

{'Topic': 'com.apple.mgmt.External.dadd0670-xxx', 'UDID' : 'xxx', 'Token': xxxx, 'PushMagic': 'xxxx', 'MessageType': 'TokenUpdate'} 

正如你可以在響應看到,映射的是MDM令牌(我們在TokenUpdate命令中得到它)與一個設備,我們只能使用設備的UDID

因此,在iOS應用程序中,我必須將設備的UDID發送到我們的服務器,以將該令牌與設備鏈接起來。我正在使用"[[UIDevice currentDevice] uniqueIdentifier]"來做到這一點。

但是,現在蘋果並不接受訪問uniqueIdentifier的應用程序。

Protocol Reference

+0

所以你想替換這個 '[[UIDevice currentDevice] uniqueIdentifier]'? – 2013-05-13 08:01:21

+0

您可以使用'[UIDevice uniqueDeviceIdentifier];'作爲替換 – 2013-05-13 08:04:20

+0

看看我在這裏的答案http://stackoverflow.com/questions/7128828/what-c​​an-be-used-with-uidevice-currentdevice/16099440 #16099440 – Popeye 2013-05-13 08:11:27

回答

2

中的iOS 6.0及以上版本開始,蘋果已經提供了,你可以使用新的標識符。您的選項是:

[[UIDevice currentDevice] identifierForVendor]] 

這意味着用於識別裝置的特定供應商。因此,對於同一開發人員的應用程序也是如此,但在不同開發人員的應用程序中會有所不同。 See the docs here.

或者,你可以使用:

[[ASIdentifierManager sharedManager] advertisingIdentifier] 

這返回的值是所有廠商相同。但是,它僅用於廣告目的(並且在某些情況下,可以改變...例如設備被擦除)。 See the docs here.

您也可能指的是可以發現here並有關於上述兩個替代選擇的評論(也使用UUIDNSUUID類的另一種選擇)上uniqueIdentifier的文檔。

上述兩個提到的選項主要的限制是,它們可用於iOS 6.0以上版本只有...如果你必須針對iOS 5.0及,你也有這是創建自己的標識(如基於另一種選擇例如由UIDevice-with-UniqueIdentifier-for-iOS-5完成的MAC地址)。

0

MAC地址是唯一的,每個iPhone設備將有它。使用macaddress創建一個與UDID類似的唯一字符串,然後使用它。

這是做這項工作的github link to UIDevice category。希望能幫助到你!

Amar。

0

MAC地址不提供iOS7

它會不斷地返回02:00:00:00:00:00

蘋果已經在iOS的7 年8月聲明

MAC地址2013年12月22日如果您的應用使用MAC地址來識別iOS設備,則系統將爲運行iOS 7的所有設備 返回相同的靜態值。請更新您的應用以使用標識符ForVendor UIDevice的財產。如果您需要廣告 的標識符,請使用ASIdentifierManager的advertisingIdentifier屬性。

https://developer.apple.com/news/?id=8222013a

0

一個可能的解決方案是使用新的託管應用程序的功能,讓您的MDM通過配置的plist交付UDID到該設備。

下面是一個示例項目的鏈接,該示例項目從MDM提供的PList獲取配置設置。在你的情況下,你只需讓你的MDM發送UDID。 https://developer.apple.com/library/ios/samplecode/sc2279/Introduction/Intro.html

我認識到這不是世界上最好的解決方案,但它是將設備上的應用程序映射到MDM中的設備記錄的一種方式。