当应用程序通过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哈希,然后使用XCode中的“构建和运行”在连接的iPhone上运行,产生的结果与在OS X终端中运行openssl sha256 MyAppExecutableFile
计算SHA256哈希完全相同。这意味着通过XCode安装应用程序的行为不会改变可执行文件。
我的问题是,当一个应用程序被提交到App Store,购买,并安装时,是否仍然保持这种情况?