2014-12-19 2 views
4

У нас есть приложение android/ios, которое строилось до этого момента в Xcode. В понедельник мы обновили Xcode до версии 6.1.1. С тех пор я не могу создавать и запускать наше приложение в симуляторах Xcode.Проблема с «Неопределенные символы для архитектуры i386»

ld: warning: ignoring file /Users/ACCOUNTZ/Library/Developer/Xcode/DerivedData/Accountz-crbaoextdggovrahxqcivilxfgeh/Build/Products/Debug-iphonesimulator/libCordova.a, file was built for archive which is not the architecture being linked (i386): /Users/ACCOUNTZ/Library/Developer/Xcode/DerivedData/Accountz-crbaoextdggovrahxqcivilxfgeh/Build/Products/Debug-iphonesimulator/libCordova.a 
Undefined symbols for architecture i386: 
    "_CDVLocalNotification", referenced from: 
     -[AppDelegate application:didReceiveLocalNotification:] in AppDelegate.o 
    "_CDVPluginHandleOpenURLNotification", referenced from: 
     -[AppDelegate application:openURL:sourceApplication:annotation:] in AppDelegate.o 
     -[CDVInAppBrowser openInSystem:] in CDVInAppBrowser.o 
     -[AppDelegate application:openURL:sourceApplication:annotation:] in AppDelegate.o 
     -[CDVInAppBrowser openInSystem:] in CDVInAppBrowser.o 
    "_CDVRemoteNotification", referenced from: 
     -[AppDelegate application:didRegisterForRemoteNotificationsWithDeviceToken:] in AppDelegate.o 
    "_CDVRemoteNotificationError", referenced from: 
     -[AppDelegate application:didFailToRegisterForRemoteNotificationsWithError:] in AppDelegate.o 
    "_OBJC_CLASS_$_CDVCommandDelegateImpl", referenced from: 
     _OBJC_CLASS_$_MainCommandDelegate in MainViewController.o 
    "_OBJC_CLASS_$_CDVCommandQueue", referenced from: 
     _OBJC_CLASS_$_MainCommandQueue in MainViewController.o 
    "_OBJC_CLASS_$_CDVPlugin", referenced from: 
     _OBJC_CLASS_$_GAPlugin in GAPlugin.o 
     _OBJC_CLASS_$_CDVClipboard in CDVClipboard.o 
     _OBJC_CLASS_$_CDVDevice in CDVDevice.o 
     _OBJC_CLASS_$_CDVInAppBrowser in CDVInAppBrowser.o 
     _OBJC_CLASS_$_CDVConnection in CDVConnection.o 
    "_OBJC_CLASS_$_CDVPluginResult", referenced from: 
     objc-class-ref in GAPlugin.o 
     objc-class-ref in CDVClipboard.o 
     objc-class-ref in CDVDevice.o 
     objc-class-ref in CDVInAppBrowser.o 
     objc-class-ref in CDVConnection.o 
    "_OBJC_CLASS_$_CDVUserAgentUtil", referenced from: 
     objc-class-ref in CDVInAppBrowser.o 
    "_OBJC_CLASS_$_CDVViewController", referenced from: 
     _OBJC_CLASS_$_MainViewController in MainViewController.o 
     objc-class-ref in CDVDevice.o 
    "_OBJC_CLASS_$_CDVWebViewDelegate", referenced from: 
     objc-class-ref in CDVInAppBrowser.o 
    "_OBJC_METACLASS_$_CDVCommandDelegateImpl", referenced from: 
     _OBJC_METACLASS_$_MainCommandDelegate in MainViewController.o 
    "_OBJC_METACLASS_$_CDVCommandQueue", referenced from: 
     _OBJC_METACLASS_$_MainCommandQueue in MainViewController.o 
    "_OBJC_METACLASS_$_CDVPlugin", referenced from: 
     _OBJC_METACLASS_$_GAPlugin in GAPlugin.o 
     _OBJC_METACLASS_$_CDVClipboard in CDVClipboard.o 
     _OBJC_METACLASS_$_CDVDevice in CDVDevice.o 
     _OBJC_METACLASS_$_CDVInAppBrowser in CDVInAppBrowser.o 
     _OBJC_METACLASS_$_CDVConnection in CDVConnection.o 
    "_OBJC_METACLASS_$_CDVViewController", referenced from: 
     _OBJC_METACLASS_$_MainViewController in MainViewController.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Я потратил несколько часов, чтобы выяснить, что происходит, но, похоже, это невозможно. Я сделал несколько предложений, найденных в Интернете, но без результата. Я попытался добавить «отсутствующие» фреймворки из раздела «Сборка фаз», я играл с «Build Active Architectures Only», я попытался добавить эту архитектуру i386 в список допустимых архитектур для Target и Project.
Все это не имеет никакого эффекта.

Что мне здесь не хватает?

+0

Какая версия кордовы - ваш проект? –

+0

@DawsonLoudon - работаем по 3.6.3-0.2.13 build – robjez

ответ

2

Так получилось, что у меня была недостающая архитектура (i386) для Cordova сборка моего приложения. Мой «файл cordova.a был проигнорирован» (согласно моему предупреждению), потому что на самом деле я потерял настройку архитектуры i386 после обновления Xcode. Чтобы решить эту проблему, мне нужно было добавить эту архитектуру, нажав Cordova.xcodeproj. Затем я добираюсь до Кордовы (не Project), где мне нужно было добавить недостающую архитектуру для целевой и проектной частей Cordova Build.

Я даже не знал об этом разделе. Поэтому я много раз пытался настраивать архитектуры самого проекта (щелкнув имя проекта в Navigator и получить доступ к вкладке настроек сборки), но чтобы исправить мою проблему, я просто должен был сделать это, щелкнув файл Cordova.xcodeproj.

Этот link помог мне, так что вы тоже захотите следовать.