Librairie statique privée et uniqueIdentifier

Bonjour !


 


J'ai un (gros :'(  ?) problème :


 


En validant mon archive en vue d'un déploiement sur l'App Store, j'ai eu l'erreur m'indiquant que l'utilisation de [UIDevice uniqueIdentifier] n'est plus autorisée par Apple.


 


Le souci est que j'ai identifié que [UIDevice uniqueIdentifier] était utilisé


dans une librairie privée (xxxExternalLib.a).


 


Comment pourrais-je modifier cette librairie qui ne m'appartient pas ?


 


J'ai regardé sur google et j'ai compris que décompiler cette librairie ne serait pas possible ou très compliqué.


J'ai aussi vu qu'éventuellement il pouvait être possible de sous-classer la méthode faisant appel à  [UIDevice uniqueIdentifier] pour la "neutraliser", mais encore faut il identifier cette méthode.


J'ai essayé de supprimer la librairie en pensant corriger les erreurs une à  une par la suite mais une autre librairie privée y fait référence.


J'ai un doute quant à  l'utilisation de Admob dans cette librairie privée mais je ne trouve pas de fichier en lien avec Admob dans l'arborescence du projet.


 


Je précise que le projet sur lequel je travaille mélange C++ et Objective-C et je n'ai pas de compétences en C++ malheureusement :o  , ce qui s'ajoute à  ma confusion.


 


Donc existe-t'il une solution pour ce genre de problèmes ?


 


Merci.


Réponses

  • AliGatorAliGator Membre, Modérateur
    Demander à  l'auteur de mettre à  jour sa librairie.


  • Demander à  l'auteur de mettre à  jour sa librairie.




    Oui bien sûr mais je voulais savoir si à  part ce recours il existait une autre solution réalisable pour modifier une librairie privée... bien que je ne nourrisse peu d'espoir :)

  • Si la librairie n'est pas maintenue (j'ai suivi de très loin cette histoire de uniqueIdentifier mais il me semble que ça fait un moment que ce sujet est sur le tapis), mieux vaut ne pas l'utiliser du tout...


  • Salut,


     


    Si vraiment t'as aucune solution préconisées par les autres ( contacter le développeur de la librairie ou bien la remplacer avec une autre maintenue),Ce mec  dit que c'est possible http://www.doubleencore.com/2013/06/tutorial-finding-calls-to-uniqueidentifier-in-your-ios-app/


    Regarde le dernier paragraphe.

  • AliGatorAliGator Membre, Modérateur
    J'allais justement proposer cette méthode d'éditer carrément le binaire compilé de la librarie pour remplacer tous les appels compilés à  uniqueIdentifier dans cette lib par un autre nom de méthode de la même taille, genre "deviceUniqueUUID" (je sais le nom fait un peu pléonasme avec unique + UUID qui dit déjà  Unique dans son acronyme, mais bon...), et implémenter ensuite cette méthode dans une catégorie de UIDevice, de sorte que ça retourne un UUID ou tout simplement appelle identifierForVendor à  la place.

    Après, c'est un peu crado/bidouille et potentiellement dangereux je trouve... en théorie ça devrait marcher, mais à  utiliser en dernier recours, en ayant pensé à  allumer 3 cierges et faire la danse du feu et de sacrifier un poulet.
  • CéroceCéroce Membre, Modérateur

    Si la librairie n'est pas maintenue (j'ai suivi de très loin cette histoire de uniqueIdentifier mais il me semble que ça fait un moment que ce sujet est sur le tapis), mieux vaut ne pas l'utiliser du tout...

    J'ai exactement le même avis que toi. ça fait un an et demi qu'Apple a annoncé qu'on ne pourrait plus utiliser la méthode. Si la lib l'utilise encore, c'est qu'elle n'est pas maintenue.
  • Merci à  vous ! je vais tenter de rentrer en contact avec l'auteur de la librairie pour savoir si elle est toujours maintenue.


  • AliGatorAliGator Membre, Modérateur
    octobre 2013 modifié #9
    Tu veux dire que tu n'avais même pas commencé par le contacter ? Arf ^^
Connectez-vous ou Inscrivez-vous pour répondre.