2009-09-25 2 views
0

Мое приложение, казалось бы, прекрасно работает в тренажере, но первый раз, когда я подключил телефон к моей системе и она была построить для нее я получил огромный журнал ошибок с вещами, как:Почему я пытаюсь создать «файл не из требуемой архитектуры», когда я пытаюсь создать приложение на iphone?

Построение SCCUI проекта SCCUI с конфигурацией Debug

CompileXIB HandleAlert.xib 
cd /Users/gdbriggs/Desktop/SCCUI 
setenv IBC_MINIMUM_COMPATIBILITY_VERSION 3.1 
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr 
/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Developer/usr/bin/ibtool --errors --warnings --notices --output-format human-readable-text --compile 
/Users/gdbriggs/Desktop/SCCUI/build/Debug-iphoneos/SCCUI.app/HandleAlert.nib /Users/gdbriggs/Desktop/SCCUI/HandleAlert.xib 

/* com.apple.ibtool.document.warnings */ 
/Users/gdbriggs/Desktop/SCCUI/HandleAlert.xib:13: warning: UITextView does not support data detectors when the text view is editable. 

Ld build/Debug-iphoneos/SCCUI.app/SCCUI normal armv6 
cd /Users/gdbriggs/Desktop/SCCUI 
setenv IPHONEOS_DEPLOYMENT_TARGET 3.1 
setenv MACOSX_DEPLOYMENT_TARGET 10.5 
setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk -L/Users/gdbriggs/Desktop/SCCUI/build/Debug-iphoneos -F/Users/gdbriggs/Desktop/SCCUI/build/Debug-iphoneos -F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/System/Library/Frameworks -filelist /Users/gdbriggs/Desktop/SCCUI/build/SCCUI.build/Debug-iphoneos/SCCUI.build/Objects-normal/armv6/SCCUI.LinkFileList -mmacosx-version-min=10.5 -dead_strip -miphoneos-version-min=3.1 -framework Foundation -framework UIKit -framework CoreGraphics -framework MessageUI -o /Users/gdbriggs/Desktop/SCCUI/build/Debug-iphoneos/SCCUI.app/SCCUI 

ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/System/Library/Frameworks/Foundation.framework/Foundation, file is not of required architecture 
ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/System/Library/Frameworks/UIKit.framework/UIKit, file is not of required architecture 
ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics, file is not of required architecture 
ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/System/Library/Frameworks/MessageUI.framework/MessageUI, file is not of required architecture 
Undefined symbols: 
    "_OBJC_CLASS_$_UIDevice", referenced from: 
     [email protected] in SCAuthenticationHandler.o 
    "_OBJC_CLASS_$_NSString", referenced from: 
     [email protected] in CCProxy.o 
     [email protected] in AlertSummaryViewController.o 
     [email protected] in HomeLevelController.o 
     [email protected] in SCAuthenticationHandler.o 
     [email protected] in SCRequestHandler.o 
    "_UIApplicationMain", referenced from: 
    _main in main.o 
    "_objc_msgSend", referenced from: 
     _main in main.o 
     _main in main.o 
     _main in main.o 
     -[SCCUIAppDelegate applicationDidFinishLaunching:] in 

и он просто продолжает идти.

В/в нижней части говорится:

ld: symbol(s) not found 
collect2: ld returned 1 exit status 

Что я делаю неправильно?

ответ

3

Вы указали эти пути? Посмотрев на них, они все указывают на: /Developer/Platforms/iPhoneSimulator.platform/... что объясняет, почему вы получаете ошибку file is not of required architecture; он ожидает библиотеки устройств и библиотеки поиска.

+0

Я полагаю, что сделал, но я не уверен, как, и я не уверен, как это исправить. Я действительно совсем новый - Mac, объектив-c, iPhone, вы называете это. Предложения? – Dale

+0

Заметьте, единственное, что я могу запомнить, указав путь, было, когда я попытался импортировать среду MessageUI и импортировать ее, я «маневрировал» в указанную вами папку. Я не мог понять другого способа импортировать эту фреймворк, хотя он не был в списке существующих фреймворков, когда я пошел добавлять его, поэтому я нажал на другую кнопку ... и просмотрел, пока не нашел это - в 3.1. – Dale

+0

А вот почему. По какой-то причине инфраструктура MessageUI не отображается как существующая структура. Чтобы добавить его в свой проект, откройте свою целевую информацию. (Вы можете сделать это, выбрав цель сборки и щелкнув правой кнопкой мыши, чтобы выбрать Get Info). На вкладке «Общие» вы увидите «LInked Libraries». Здесь вы можете добавить новые библиотеки, которые действительно доступны. MessageUI.framework действительно является одной из этих библиотек. Это должно решить проблемы кросс-платформенной сборки. – Malaxeur

8

Решение которым мне помог:

правой кнопкой мыши на цель -> Get Info -> "Строить" вкладка -> Настройка с именем: Рамки поиска путей добавить значение "$ (SDKROOT) $ (SYSTEM_LIBRARY_DIR)/Frameworks" и переместить его в начало списка путей

проектов
+1

Это помогло мне! Моя проблема заключалась в том, чтобы работать на симуляторе, а не на устройстве. Взяв это, мы решили обе проблемы. – Eli

1

Старого iPhone могут иметь «рамку поиск путей», установленные на несуществующий SDK, как:

*/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/System/Library/Frameworks* 

Как это жестко он сделал перерыв, как только поскольку этот SDK был удален с помощью обновления XCode. Тогда симулятор сборка завершается с основными символами не найден как "_OBJC_CLASS _ $ _ NSString"

Гибкая настройка для целевого объекта "рамочных Путей поиска" действительно: $ (SDKROOT) $ (SYSTEM_LIBRARY_DIR)/Frameworks

«Цель развертывания iOS» должна быть обновлена ​​до iOS 3.0 как минимум.

После установки этих параметров я мог запустить свое старое приложение в симуляторе.