我有一个应用程序包无法在我的模拟器上运行(因为它是为设备构建的)
我可以在(捆绑包)内更改一行或编码或其他内容以使其在我的模拟器上工作吗?
不可以,您无法更改现有应用程序包(为设备构建)以在模拟器上运行。
iOS 设备使用 ARM 处理器,因此为设备构建的应用程序包包含 ARM 机器代码。该模拟器在 Mac 上运行,而 Mac 使用 Intel 处理器,因此为模拟器构建的应用程序包包含 Intel 机器代码。 Apple 不提供任何可以将 ARM 代码转换为 Intel 代码的产品。 (我也不知道其他地方有任何此类程序。)
由于应用程序包不包含应用程序的原始源代码,因此您也无法使用它来重新编译模拟器的源代码。
是的,你可以!其实这并不难。
简单来说,如果你想将iOS设备框架转换为模拟器框架,可以通过以下四个步骤来完成:
lipo -info PATH_TO_BINARY
进行检查:lipo -thin arm64 PATH_TO_ARM64_FRAMEWORK -output binary.arm64
vtool -arch arm64 -set-build-version 7 13.0 13.0 -replace binary.arm64 -output binary.arm64
lipo -create binary.arm64 PATH_TO_X86_64_BINARY -output PATH_TO_X86_64_BINARY
更新info.plist,将arm64添加到iOS Simulator二进制文件的SupportedArchitectures中。
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>