plist (lista de propiedades) md5sum cambios de archivo, al compilar en aplicación para el iPhone

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

  •  16-09-2019
  •  | 
  •  

Pregunta

Estoy incluyendo un archivo plist en mi aplicación para el iPhone. Es en formato binario (usando plutil convertir de XML a binario). Quiero correr una suma de comprobación MD5 (o SHA-1) en él en tiempo de ejecución para confirmar su contenido son lo que se espera. Por desgracia, siempre consigo una suma de comprobación que es diferente de lo que originalmente incluía. Después de más de una hora de asumir que estaba calculando la suma MD5 mal, decidí realizar una prueba y confirmar que los bytes son, en efecto, el mismo. No lo son. El tamaño del archivo sigue siendo el mismo, pero a partir del byte 30, y en todo el archivo (a excepción de los últimos 32 bytes), el contenido del archivo son completamente diferentes. ¿Alguien sabe si los archivos de lista propiedad están firmados o "compilados" a un formato binario diferente antes de su inclusión en una aplicación de iPhone? Si es así, ¿puede proporcionar más detalles sobre el proceso?

Gracias de antemano!

¿Fue útil?

Solución

Por defecto, en lugar de hacer una copia recta, Xcode utiliza un pequeño script para procesar y copiar archivos plist en la construcción de un objetivo. Si abre la ventana de información para su objetivo en Xcode y seleccione la pestaña "Reglas", verá que para el procesamiento de archivos de origen text.plist, utiliza su propia herramienta llamada CopyPlistFile. Lo hace algunas comprobaciones básicas para asegurarse de que el plist es válida, y puede convertir opcionalmente a un formato diferente, aunque parece que no hay conversión se realiza de forma predeterminada.

No sé si esto es lo que está provocando un cambio en su archivo plist, pero si se desea se puede obtener información sobre el archivo plist sí en su proyecto y cambiar el tipo de archivo "text.plist" a sólo " texto". Eso debería hacer que Xcode a tratarlo como un archivo de texto plano en lugar de un archivo de lista de propiedades y simplemente hacer una copia directa en lugar de ejecutarlo a través de la herramienta de CopyPlistFile.

Otros consejos

haré estallar la razón por la pila sobre esta cuestión. No sé la respuesta a su pregunta, pero tengo curiosidad por qué se está gastando tiempo en él.

Desde aplicaciones están firmados digitalmente, ¿por qué estás preocupado por la integridad de la PLIST? Si alguien lo modificó, a continuación, la aplicación no sería instalar debido a que la firma digital ya no sería válida.

La otra razón podría ser que usted está preocupado por la aplicación que se cortó. Perfectamente razonable, pero si alguien puede piratear la aplicación, entonces se puede también modificar el PLIST, y cambiar la suma de comprobación en el código de modo que aún se ejecutará. Realmente no hay manera de garantizar la integridad de su contenido sin tener que reciba de un tercero (por ejemplo, su propio servidor)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top