Идентичен ли исполняемый файл приложения побайтно при покупке приложения через App Store и установлен на iPhone пользователя по сравнению с исходным исполняемым файлом, отправленным в Apple в исходном пакете приложений? Или он другой (например, с дополнительными подписями или шифрованием)?
Меня беспокоит только исполняемый файл, а не весь пакет приложения.
В частности, будет код, такой как ...
int main(int argc, char* argv[]) {
FILE* file = fopen(argv[0], "rb");
// Read entire contents of executable file; calculate a hash value
// ...
fclose(file);
}
. .. вычислить тот же хэш, что и при вычислении хэша за пределами iPhone в исходном, отправленном исполняемом файле?
Например, вычисление хэша SHA256, как указано выше, а затем использование «Build and Run» в XCode для запуска на подключенном iPhone, дает точно то же результат вычисления хэша SHA256 путем запуска openssl sha256 MyAppExecutableFile
с терминала в OS X. Это означает, что установка приложения через XCode не изменяет исполняемый файл.
Мой вопрос заключается в том, действительно ли это все еще сохраняется, когда приложение отправлено в App Store, куплено и установлено.