判断苹果app是否以转译模式运行(Rosetta translation)

苹果app的进程是否运行在转译模式(Rosetta translation),通过调用 sysctlbyname 函数,传入 sysctl.proc_translated 标识来判断 /// 返回 1 表示在Rosetta translation模式 ;返回 0 表示在Native Code模式;返回 -1,表示发生错误 int processIsTranslated() { int ret = 0; size_t size = sizeof(ret); if (sysctlbyname("sysctl.proc_translated", &ret, &size, NULL, 0) == -1) { if (errno == ENOENT) return 0; return -1; } return ret; } 参考地址https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment#3616845

November 20, 2020 · 1 min · holdsky