IOS симулятор на Mac работает i386, а не armv7?

У меня есть некоторые статические библиотеки, которые я создал для использования на архитектурах armv7. Когда я пытаюсь использовать их в проекте iOS, который я тестировал на симуляторе iphone 5.0, я получаю ошибки, рассказывающие мне о undefined symbols for architecture i386 в моих статических библиотеках.

Итак, я думаю, это означает, что симулятор iphone хочет библиотеки, скомпилированные для i386? Тогда в чем смысл симулятора - почему они не эмулируют архитектуру armv7?

Итак, единственный способ проверить мои статические библиотеки - подключить физическое устройство iOS и запустить его?

Или я ошибаюсь?

Ответы

Ответ 1

Итак, я думаю, это означает, что симулятор iphone хочет, чтобы библиотеки были скомпилированы для i386? Тогда в чем смысл симулятора - почему бы не догадаться эмулировать архитектуру armv7?

Вы ответили на свой вопрос. Это симулятор, а не эмулятор. Поэтому это Mac OSX-программа, работающая на архитектуре i386. Если вы скомпилируете свои статические библиотеки для i386, вы сможете использовать их на симуляторе.

Ответ 2

Я не уверен, но i386 для Симулятор и armv7 для Устройства, с которым вы подключились на ваш компьютер.

Ответ 3

Фактически вы можете скомпилировать приложение с помощью инструмента командной строки Xcode с использованием архитектуры i386 (есть также способ запускать его в интерфейсе Xcode путем изменения настроек сборки).

xcodebuild -sdk iphonesimulator6.1 -arch i386 VALID_ARCHS="i386 armv7 armv7s" clean install

Запустите эту команду в каталоге с файлом projectName.xcodeproj.

Здесь прорыв script:

-sdk iphonesimulator6.1 // Build the app on iPhone simulator 6.1
-arch i386 // Build your app using i386 architecture
VALID_ARCHS="i386 armv7 armv7s" // Specify these architectures are valid
clean install // Clean all the builds then re-build and install

Ответ 4

Если вы хотите попробовать симуляторы с i386, просто перейдите для = < iPhone 5.