Симулятор iOS на Mac работает под управлением архитектуры i386, а не armv7? - PullRequest
15 голосов
/ 24 октября 2011

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

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

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

Или я ошибся?

Ответы [ 4 ]

27 голосов
/ 24 октября 2011

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

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

9 голосов
/ 24 октября 2011

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

4 голосов
/ 20 августа 2013

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

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

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

Вот пример сценария:

-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
0 голосов
/ 04 сентября 2017

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

...