Étant donné que Apple est amortissant l'identifiant de périphérique unique pour les applications, quelle est la meilleure approche pour relier une application d'entreprise sur un périphérique inscrit à MDM? P>
du document de référence de protocole MDM, l'inscription utilise toujours la procédure d'enregistrement UDID. P>
Nous ne pouvons pas utiliser le nouvel identifiantFendor car il n'est pas aussi identique que l'UDID pour l'enregistrement. p>
Permettez-moi de mettre à jour comment j'ai implémenté ma solution MDM, P>
Je pensais utiliser l'adresse MAC mais dans le dernier iOS 7, le système reviendra toujours sur la valeur 02h00: 00: 00: 00: 00. P>
Nous ne pouvons pas non plus obtenir le numéro de série de l'appareil. p>
Donc, ma question à nouveau, comment pouvons-nous connaître cette application sur ce périphérique appartient à cette inscription MDM sur le serveur sur le (3). Parce que maintenant, l'application n'a pas de clé commune à renvoyer avec le processus d'enregistrement. Comment le serveur saura-t-il quel appareil est lequel est lequel est? P>
merci. p>
5 Réponses :
J'aurais une lecture de cette source que j'ai trouvée il y a quelques mois; http://www.droubleencore.com/2013/04/Unique-Identifiers/ a> p>
De là, j'ai utilisé la méthode Cfuuid qui m'a bien servi. P>
nsstring * uniqueID = [Nstring StringwithFormat: @ "% @", CFUUIDCreating (NULL, CFUUIDCREATE (NULL))]; CODE> P>
Le problème est que le protocole MDM n'a pas de demande d'option pour CFUUID dans la charge utile. MDM envoie uniquement UDID et autres infos matériels. Donc, vous ne pouvez pas relier CFUUID avec ce qui a été envoyé au serveur MDM.
Dans iOS 7, Apple renvoie maintenant toujours une valeur fixe lors de la requête pour interroger spécifiquement le Mac comme base pour un schéma d'identité. Donc, vous devez maintenant utiliser - [Uidevice IdentifierForvendor] ou créer un UUID par installation. P>
[Uidevice IdentificateurForvendor] ne correspond pas à l'appareil UDID par MDM PayLoad. C'est le problème
Je suis également confronté au même problème dans mon application. Il y aura également un problème ce qui s'est passé lorsque l'utilisateur mettra à jour le système d'exploitation dans son appareil.
Donc, je pense que la meilleure option est que nous avons à jeton de périphérique utilisateur (si vous utilisez une notification push) dans notre application.
Ce que vous pouvez faire est d'obtenir un identifiant unique à l'aide de [[[Uidevice CurrentDevice] IdentifiantFendor] ou tout autre générateur d'identifiant unique. Après cela, vous devez stocker cette valeur sur Keychain à l'aide de KeychainItemWrapper et d'utiliser. Une fois que vous stockez une valeur sur la chaîne de clés, cela ne supprimera pas même après avoir supprimé et réinstaller l'application.
[uidevice uniqueIdentifier] code> a été remplacé par
[[Uidevice Identificateur] uuidstring] code> dans iOS 6.0. p>
Le meilleur moyen, et peut-être le seul moyen, est d'utiliser les nouvelles fonctionnalités de configuration des applications gérées dans iOS 7. Vous pouvez avoir votre MDM enfoncer quelque chose comme une touche API de votre application. Ensuite, votre application présente cette touche dans votre appel à votre serveur MDM ou à tout autre service Web.
Une fois que vous avez appuyé votre configuration sur votre application, vous pouvez extraire la clé API avec quelque chose comme ci-dessous. La plupart des solutions MDM traditionnelles prennent déjà en charge ce type de fonctionnalité dans leurs dernières versions. P>
NSDictionary *config = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"com.apple.configuration.managed"]; NSString *apiKey = config[@"kAPIKey"]; if (apiKey) { //We got an API key and we can use it } else { //We didn't get an API key...something has gone wrong }
Comment puis-je faire mon application comme application gérée? Je m'étais inscrit à Apple Business Manager et j'avais le serveur MDM
Cependant, La réponse de LidSinker forte> est vrai, laissez-moi me concentrer sur ce que d'autres qui recherchent cela peuvent être aidés. P>
Vous pouvez créer une application Enterprise et peut l'installer via MDM.
Une fois le périphérique inscrit, MDM peut installer l'application Enterprise sur l'appareil. MDM peut également définir la configuration par défaut dans NSUserDefault. P>
L'application peut la lire chaque fois qu'il est lancé comme ci-dessus décrit dans la réponse de LidSinker Strong>. p>
Apple fournit un exemple ici.
https://developer.apple.com/library/content/ Samplecode / SC2279 / INTRODUCTION / INTRO.HTML P>
Cette approche peut-elle garantir que l'application ne fonctionne que sur des périphériques inscrits? Supposons que quelqu'un puisse extraire l'application d'un périphérique inscrit et l'installer sur une opération sansrollue - est-ce possible?
Il est tard, mais laissez-moi donner une certaine clarté. Comme je sais que l'on ne peut pas installer une application dans un périphérique iOS comme celui-ci. Bien que cela ne soit pas possible, si quelqu'un l'installe par un piratage alors, bien sûr, il n'y aura aucun moyen de copier UserDefault avec elle.
Avez-vous trouvé une solution à votre problème? Le mien est à peu près la même chose.
La seule solution de contournement est d'utiliser l'identifiantForvendor et de le stocker dans le porte-clés afin que l'identifiantForvendor reste même que l'utilisateur a réinstallé l'application Enterprise.
Bump pour la réponse, je ressens le même problème, mais je n'ai pas encore trouvé de solution.