2014-01-09 87 views
2

這是我的情況和問題。我有一個商業公司使用的應用程序。他們給他們的工人一個電話,上面安裝了我們的應用程序,工作人員可能會交換電話(即先到先得;抓住可用的東西)。我可以使用什麼作爲UUID的永久替代品?

該公司需要一種方法來識別每個手機,以防萬一它被盜用,並用於庫存,但從我們的應用程序。我們的解決方案爲他們提供了一種在手機丟失或被盜時遠程清除應用程序的方法。由於我們無法使用每個Apple的UUID,所以我們不確定如何識別手機進行擦除。我知道有一種臨時的方式來起訴一個臨時UUID,但是這個臨時UUID有能力改變或被Apple或者手機上的另一個應用程序重置。因此,如果該UUID從我們下面得到更改,我們無法將其抹除或識別爲新的更改UUID將被忽略。

當我們在安裝應用程序時生成我們自己的唯一ID的另一個問題是,如果某些卸載我們的應用程序並重新安裝,無論出於何種原因,它將在後端創建一個新的唯一ID。現在,我們必須在同一部手機的後端添加ID,因此廣告資源會顯示一部額外的手機。

我們不能相信公司總是要確保清除舊ID,以便他們重新安裝應用程序。

有什麼建議嗎?

回答

4
  1. 有關的唯一標識符,生成一個UUID,並在鑰匙串中保存它
  2. 蘋果OS X Server具有管理遠程設備的功能,這對企業非常有用的。如管理VPN設置,WiFi設置,分發應用程序,遠程擦除被盜。你應該研究MDM。 如果你的iPhone被盜,你可以在你的應用程序中無所作爲。
  3. 我知道
+0

但是,如果應用程序被卸載,然後鑰匙鏈被擦拭,那麼什麼? – jdog

+0

不,我認爲它仍然存在 – aelam

+0

刪除應用程序時,鑰匙鏈未被擦除。直到用戶重置設備。 – CoolMonster

1

最好的辦法是包括AdSupport和做到這一點:

NSString *uuid = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; 

可以NSUserDefaults的跨應用程序更新堅持這一點。在卸載時無法確定。爲此,您可能需要用戶身份和存儲設備。

0

下面的代碼將幫助你獲得獨特的字母數字值,這將是同爲來自同一個設備

這意味着如果你5個應用程序上運行同一供應商的應用程序。已發佈,所有這些將在特定設備上爲您返回相同的唯一值。

[[[UIDevice currentDevice] identifierForVendor] UUIDString] 

Please find the Reference at Developer Library

其他的解決辦法是使用OpenUDID

第三種解決方案是如下:

  1. 當App。第一次啓動,從「CFUUIDCreate」創建您自己的唯一ID

  2. 用雲中的NSUserDefault保存此內容。

因此,現在如果應用程序已卸載,那麼當從雲端獲取該應用程序時,該用戶仍然具有相同的ID。

如果手機重置,您仍將獲得相同的ID,除非和直到更改雲賬戶。

+0

但是,如果我們的應用程序被刪除,這也會被刪除「刪除刪除該團隊ID的最後一個應用程序」 – jdog

相關問題