web-dev-qa-db-ja.com

x86_64システムのみでiOSシミュレーターにi386およびx86_64シンボルが必要なのはなぜですか?

以前に問題が発生していたアプリをシミュレーターで実行しようとしています。 i386用にビルドされたlibjpeg.aはありませんが、x86_64はあります。これが唯一の依存関係ですが、i386 macで実行しているのに、なぜx86_64シンボルが実際に必要なのか疑問に思っています。

23
Joey Carson

IOSシミュレータは、アプリを32ビットモードと64ビットモードで実行できます。これにより、64ビットの問題の多くを解決し、armv7とarm64の両方に対応できるようにすることができます。これを行うには、アプリをi386とx86_64用にコンパイルし、両方のアーキテクチャ用のライブラリが必要です。

29

iOSアプリは、多くの異なるアーキテクチャーで実行する必要があります。

arm7: Used in the oldest iOS 7-supporting devices
arm7s: As used in iPhone 5 and 5C
arm64: For the 64-bit ARM processor in iPhone 5S
i386: For the 32-bit simulator
x86_64: Used in 64-bit simulator
18
Naishta

実際i386アーキテクチャはiPhoneシミュレータ用であり、x86_64アーキテクチャはiPadシミュレータ用であり、32ビットと64ビットの両方に対応しています。

11
Syed Ali Salman