plist (liste de biens) fichier change md5sum lors de la compilation dans l'application iPhone

StackOverflow https://stackoverflow.com/questions/1142995

  •  16-09-2019
  •  | 
  •  

Question

Je suis d'inclure un fichier plist dans mon application iPhone. Il est au format binaire (en utilisant plutil convertir XML en binaire). Je veux exécuter une somme de contrôle MD5 (ou SHA-1) lors de l'exécution pour confirmer son contenu est ce qui est attendu. Malheureusement, je reçois toujours une somme de contrôle qui est différent de ce que je l'origine inclus. Après plus d'une heure d'assumer, je calculais la somme MD5 mal, j'ai décidé d'exécuter un test et confirmer que les octets sont en effet, le même. Ils ne sont pas. La taille du fichier reste le même, mais à partir de l'octet 30, et sur tout le fichier (sauf pour les 32 derniers octets), le contenu du fichier sont complètement différents. Est-ce que quelqu'un sait si la liste des fichiers de propriété sont signés ou non « compilées » à un format binaire différent avant l'inclusion dans une application iPhone? Si oui, pouvez-vous donner plus d'information sur le processus?

Merci d'avance!

Était-ce utile?

La solution

Par défaut, plutôt que de simplement faire une copie droite, Xcode utilise un petit script pour traiter et copier des fichiers plist lors de la construction d'une cible. Si vous apportez la fenêtre d'information pour votre cible dans Xcode et sélectionnez « Règles » onglet, vous verrez que pour le traitement des fichiers source text.plist, il utilise son propre outil appelé CopyPlistFile. Il fait quelques vérifications de base pour vous assurer que le plist est valide et peut éventuellement le convertir en un format différent, mais il semble qu'aucune conversion est effectuée par défaut.

Je ne sais pas si c'est ce qui provoque un changement dans votre fichier plist, mais si vous voulez, vous pouvez obtenir des informations se base sur le fichier plist dans votre projet et changer son type de fichier « text.plist » juste " texte". Cela devrait provoquer Xcode de le traiter comme un fichier texte brut plutôt qu'un fichier de liste de propriétés et juste faire une copie directement au lieu de l'exécuter à travers l'outil CopyPlistFile.

Autres conseils

Je vais pop la raison pour laquelle la pile sur cette question. Je ne connais pas la réponse à votre question, mais je suis curieux de savoir pourquoi vous passez de temps.

Depuis des applications sont signées numériquement, pourquoi êtes-vous préoccupé par l'intégrité du plist? Si quelqu'un a modifié, l'application ne serait pas installer parce que la signature numérique ne serait plus valide.

L'autre raison pourrait être que vous êtes préoccupé par l'application piraté. Tout à fait raisonnable, mais si quelqu'un peut pirater l'application, ils peuvent également modifier le plist, et changer la somme de contrôle dans votre code afin qu'il continue à fonctionner. Il n'y a vraiment aucun moyen de garantir l'intégrité de votre contenu sans réellement l'obtenir d'un tiers (par exemple votre propre serveur)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top