По некоторым причинам мое приложение будет устанавливать и хорошо работать на моем устройстве, но когда я попытаюсь установить свое приложение на iPhone Simulator, я получаю эти предупреждения:
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/CFNetwork.framework/CFNetwork, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.0.sdk/System/Library/Frameworks/QuartzCore.framework/QuartzCore, missing required architecture i386 in file
И это вызывает набор ошибок, которые просто происходят, когда те платформы просто не существуют. Ошибки как:
"_OBJC_CLASS_$_NSMutableCharacterSet", referenced from: objc-class-ref-to-NSMutableCharacterSet in SBJsonWriter.o
Он пытается собрать библиотеки устройств для использования в симуляторе. Пути должны выглядеть так:
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit
... с iPhoneSimulator.platform
вместо iPhoneOS.platform
. Проверьте настройки сборки, очистите проект и очистите кэш Xcode(Xcode>Empty Cache...).
Если я не ошибаюсь, если вы используете базовый SDK > 3.2, вы должны установить оптимизированную архитектуру. А это armv7.
Но я не уверен.
~ Natanavra.
Я нашел решение. Я установил базовый SDK на iPhone Simulator 4.0, и поскольку он все еще пытался получить SDK от iPhoneOS, я переименовал iPhoneOS.platoform
в iPhoneOS_2.platform
, чтобы Xcode не мог получить доступ к SDK от этой платформы.
Я думаю, что вы установили iPhone Device x.x вместо iPhone Simulator x.x в качестве базового SDK. У меня произошла похожая ситуация, когда я так сделал.