Файл PLIST (список свойств) File MD5SUM изменяется при составлении в приложение для iPhone

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

  •  16-09-2019
  •  | 
  •  

Вопрос

Я включаю файл PLIST в приложение для iPhone. Он находится в двоичном формате (используя плутил для преобразования из XML в двоичный). Я хочу запустить контрольную сумму MD5 (или SHA-1) на ней во время выполнения, чтобы подтвердить его содержимое-это то, что ожидается. К сожалению, я всегда получаю контрольную сумму, которая отличается от того, что я изначально включил. После более чем часа, если предположить, что я рассчитывал неправильную сумму MD5, я решил провести тест и подтвердить, что байты действительно являются такими же. Это не так. Размер файла остается прежним, но начиная с байта 30 и по всему файлу (за исключением последних 32 байтов), содержимое файла полностью отличается. Кто -нибудь знает, подписаны ли файлы списка свойств или иным образом «скомпилированы» в другой двоичный формат перед включением в приложение для iPhone? Если так, можете ли вы предоставить дополнительную информацию о процессе?

Заранее спасибо!

Это было полезно?

Решение

По умолчанию, вместо того, чтобы просто делать прямую копию, Xcode использует небольшой скрипт для обработки и копирования файлов PLIST при создании цели. Если вы поднимаете информационное окно для вашей цели в XCode и выберете вкладку «Правила», вы увидите это для обработки текста. Планируйте исходные файлы, он использует свой собственный инструмент с именем CopyPlistFile. Он выполняет некоторую базовую проверку, чтобы убедиться, что PLIST действителен, и может при желании преобразовать его в другой формат, хотя кажется, что преобразование не проводится по умолчанию.

Я не знаю, является ли это тем, что вызывает изменение в вашем файле PLIST, но если вы хотите, вы можете получить информацию в самом файле PLIST в вашем проекте и изменить тип файла с «text.plist» на просто «текст». Это должно привести к тому, что XCode рассматривает его как простой текстовый файл, а не как файл списка свойств, и просто сделать прямую копию вместо того, чтобы запустить его через инструмент CopyPlistFile.

Другие советы

Я выпью, почему стек на этот вопрос. Я не знаю ответа на ваш вопрос, но мне любопытно, почему вы тратите время на это.

Поскольку приложения подписаны в цифровом виде, почему вы обеспокоены целостностью PLIST? Если кто -то изменил его, то приложение не будет установлено, потому что цифровая подпись больше не будет действительной.

Другая причина может заключаться в том, что вы обеспокоены взломанным приложением. Совершенно разумно, но если кто -то может взломать приложение, он также может изменить PLIST и изменить контрольную сумму в вашем коде, чтобы оно все равно было работать. На самом деле нет способа гарантировать целостность вашего контента, не получая его от третьей стороны (например, ваш собственный сервер)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top