Мое приложение работает на симуляторе, но не на устройстве
У меня проблема с этой ошибкой:
Undefined symbols for architecture i386:
Когда я собираю и запускаю, он успешно запускается на симуляторе, но не на устройстве, я пробую простой новый проект, я пытаюсь запустить его на устройстве, все было в порядке, но этот проект не запускался из-за этой ошибки, полная ошибка стека заключается в следующем:
Ld "/Users/imac/Library/Developer/Xcode/DerivedData/TopStation-cjwcuxabgkltqvdslykmwkeqvsee/Build/Products/Debug-iphonesimulator/RM Unit Tests.app/RM Unit Tests" normal i386
cd /Users/imac/Desktop/route-me-route-me-b07b654/MapView
setenv MACOSX_DEPLOYMENT_TARGET 10.6
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/imac/Library/Developer/Xcode/DerivedData/TopStation-cjwcuxabgkltqvdslykmwkeqvsee/Build/Products/Debug-iphonesimulator -F/Users/imac/Library/Developer/Xcode/DerivedData/TopStation-cjwcuxabgkltqvdslykmwkeqvsee/Build/Products/Debug-iphonesimulator -filelist "/Users/imac/Library/Developer/Xcode/DerivedData/TopStation-cjwcuxabgkltqvdslykmwkeqvsee/Build/Intermediates/MapView.build/Debug-iphonesimulator/Unit Tests.build/Objects-normal/i386/RM Unit Tests.LinkFileList" -mmacosx-version-min=10.6 -framework Foundation -framework UIKit -Xlinker -objc_abi_version -Xlinker 2 /Users/imac/Library/Developer/Xcode/DerivedData/TopStation-cjwcuxabgkltqvdslykmwkeqvsee/Build/Products/Debug-iphonesimulator/libProj4.a -framework CoreFoundation -framework CoreGraphics -framework CoreLocation -framework Foundation -lsqlite3 -framework QuartzCore -framework UIKit -o "/Users/imac/Library/Developer/Xcode/DerivedData/TopStation-cjwcuxabgkltqvdslykmwkeqvsee/Build/Products/Debug-iphonesimulator/RM Unit Tests.app/RM Unit Tests"
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_RMDBTileImage", referenced from:
objc-class-ref in RMTileImage.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
Я изменил режим сборки, поэтому я выбрал устройство (в моем случае я использую iPod 4.3.5), теперь у меня есть другая ошибка:
'FavoriteCities.app' was built for 'i386', but the device 'iPod (Imac)' requires 'armv7' or compatible architecture.
FavoriteCities - это название моего приложения, пожалуйста, помогите мне выяснить, в чем может быть проблема, вызывающая все это.
1 ответ
Вам нужно изменить архитектуру сборки для сборки устройства. Это должно было быть armv6/7 по умолчанию для приложения iOS, но я думаю, что вы или что-то, что вы сделали, испортили эти настройки.
(В Xcode 4) выберите ваш проект, перейдите на вкладку Build Settings и убедитесь, что он выглядит следующим образом: