Datei plist (Eigenschaftsliste) MD5SUM ändert sich beim Kompilieren in iPhone App

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

  •  16-09-2019
  •  | 
  •  

Frage

Ich füge eine Plist -Datei in meine iPhone -App auf. Es befindet sich im binären Format (unter Verwendung von Plutil zum Konvertieren von XML in Binär). Ich möchte eine MD5-Prüfsumme (oder SHA-1) zur Laufzeit darauf ausführen, um zu bestätigen, dass der Inhalt erwartet wird. Leider bekomme ich immer eine Prüfsumme, die anders ist als das, was ich ursprünglich einbezogen habe. Nachdem ich über eine Stunde angenommen hatte, dass ich die MD5 -Summe falsch berechnet habe, beschloss ich, einen Test durchzuführen und zu bestätigen, dass die Bytes tatsächlich dasselbe sind. Sie sind nicht. Die Dateigröße bleibt gleich, aber ab Byte 30 und in der gesamten Datei (mit Ausnahme der letzten 32 Bytes) sind die Dateiinhalte völlig unterschiedlich. Weiß jemand, ob Eigenschaftenlistendateien vor der Aufnahme in eine iPhone -App in ein anderes binäres Format signiert oder auf andere Weise "kompiliert" werden? Wenn ja, können Sie weitere Details zum Prozess angeben?

Danke im Voraus!

War es hilfreich?

Lösung

Anstatt nur eine gerade Kopie durchzuführen, verwendet Xcode ein kleines Skript, um Plist -Dateien beim Erstellen eines Ziels zu verarbeiten und zu kopieren. Wenn Sie das Info -Fenster für Ihr Ziel in Xcode aufzurufen und die Registerkarte "Regeln" auswählen, werden Sie feststellen, dass die Quelldateien für die Verarbeitung von Text.Plist -Quelldateien verwendet werden. Es wird eine grundlegende Überprüfung durchgeführt, um sicherzustellen, dass die Plist gültig ist und sie optional in ein anderes Format umwandeln kann, obwohl es sich anscheinend standardmäßig anscheint, dass keine Konvertierung durchgeführt wird.

Ich weiß nicht, ob dies eine Änderung in Ihrer Plist -Datei verursacht. Wenn Sie möchten, können Sie jedoch Informationen über die Plist -Datei selbst in Ihrem Projekt erhalten und seinen Dateityp von "text.plist" in nur "Text" ändern. Dies sollte dazu führen, dass Xcode es eher als eine einfache Textdatei als als Eigenschaftslistendatei behandelt und einfach eine gerade Kopie erstellt, anstatt sie über das Tool von Copedplistfile auszuführen.

Andere Tipps

Ich werde den Warum -Stapel auf diese Frage stellen. Ich kenne die Antwort auf Ihre Frage nicht, aber ich bin gespannt, warum Sie Zeit damit verbringen.

Warum sind Sie besorgt über die Integrität des Plistes, da Apps digital signiert sind? Wenn jemand es ändern würde, würde die App nicht installiert, da die digitale Signatur nicht mehr gültig wäre.

Der andere Grund könnte sein, dass Sie besorgt darüber sind, dass die App gehackt wird. Vollkommen vernünftig, aber wenn jemand die App hacken kann, kann er auch den Plan ändern und die Prüfsumme in Ihrem Code so ändern, dass sie noch ausgeführt wird. Es gibt wirklich keine Möglichkeit, die Integrität Ihres Inhalts zu garantieren, ohne sie tatsächlich von einem Dritten zu erhalten (z. B. Ihr eigener Server).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top