Ответ 1
Для вашего проекта установите для параметра "Только активная архитектура" значение "Создать".
(Возможно, также установите для параметра "Архитектура" значение "Стандартный (armv7, armv7s)" для проекта CordovaLib.)
clang: ошибка: такого файла или каталога нет: '/Users/admin/Library/Developer/Xcode/DerivedData/__TESTING__-fzbkvdbnndieeagphtjhdndiyttl/Build/Products/Debug-iphoneos/libCordova.a'
Как мне получить это отсутствующий libCordova.a?
(источник: kerrydeaf.com)
ОБНОВЛЕНИЕ: Для Саймона Жермена.
ОБНОВЛЕНИЕ: Для Саймона Жермена. Я не вижу "Идентичность и Тип". Я вижу "идентичность". Я использую xcode 4.5
(источник: kerrydeaf.com)
ОБНОВЛЕНИЕ: Для Саймона Жермена. Я получил идентичность.
(источник: kerrydeaf.com)
ОБНОВЛЕНИЕ: для Самуила
(источник: kerrydeaf.com)
ОБНОВЛЕНИЕ: Для Саймона Жермена - Архитектура.
ОБНОВЛЕНИЕ: для james0n - armv.
(источник: kerrydeaf.com)
ОБНОВЛЕНИЕ: Для Саймона Жермена - Архитектура.
ОБНОВЛЕНИЕ: для james0n - armv.
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CDVURLProtocol", referenced from:
objc-class-ref in AppDelegate.o
"_OBJC_CLASS_$_CDVViewController", referenced from:
_OBJC_CLASS_$_MainViewController in MainViewController.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)
ОБНОВЛЕНИЕ: для james0n - допустимая архитектура.
(источник: kerrydeaf.com)
ОБНОВЛЕНИЕ: Это теперь решено !!! убедитесь, что все armv7 и armv7s для ios 6 на всех в xcode. Это сработало.
Для вашего проекта установите для параметра "Только активная архитектура" значение "Создать".
(Возможно, также установите для параметра "Архитектура" значение "Стандартный (armv7, armv7s)" для проекта CordovaLib.)
Была (как и многие другие) та же проблема, вот что я сделал:
Архитектура: стандартная (armv7, armv7s)
Только встроенная активная архитектура: Да
а затем он волшебным образом работал, я думаю, что шаги 3 и 4 сделали это, однако.
Вам нужно удалить armv6 как из вашего проекта, так и из Кордовы:
Последствия этого? По-видимому, он все еще работает на iPhone 3GS, но не в предыдущих версиях.
У меня была такая же проблема, как и у вас, отлично работала с симуляторами, но не с устройством. Ни один из предложенных ответов не работал у меня.
Вот что для меня работало:
Задайте цель развертывания v4.3 и параметры проекта для проекта CordovaLib
, установите Build Active Architecture Only
на Yes
. (Не требуется в вашем основном проекте).
Важно, сделайте Product- > Clean и перестройте.
Убедитесь, что целевая точка продукта CordovaLib установлена на "Относительно встроенного продукта" на правой стороне панели, первая вкладка на левом верхнем углу, в разделе "Идентификация и тип".
Загрузите установщика Кордовы здесь http://phonegap.com/download. Убедитесь, что вы используете ту же версию, что и в настоящее время (ex 2.0).
Затем установите dmg, найденный в каталоге ios.
Затем запустите установщик .pkg.
Перезапустить Xcode.
Вам нужно запустить обновление script, я знаю, что это может быть болью в прикладе, чтобы сделать это, но это то, что нужно.
Загрузите и откройте пакет Phonegap 2.1 с официального сайта. Откройте окно терминала и cd в каталог установки
Вам нужно сначала создать новый проект:
./create [project_folder_path] [package_name] [project_name]
Затем вам нужно установить путь к вашим библиотекам.
/update_cordova_subproject [xcodeproj file]
Теперь откройте свой проект и установите цель развертывания в 4.3, и вы должны быть готовы к работе. Надеюсь, что поможет
EDIT:
Так выглядит моя конфигурация для проекта CordovaLib
Кроме того, убедитесь, что вы не открыли одновременно несколько проектов PhoneGap Xcode - у меня возникали конфликты между ними. Тип цикла "Рабочее пространство уже открыт в другой рабочей области".
Проведя много часов с еще большим количеством ошибок, вот что сработало для меня. В основном, большинство из них:
Не включайте armv7 в любой из списков архитектуры, поскольку он не будет создан для устройства.
Протестировано в симуляторе и на iPad с iOS 6. Использование Phonegap 2.1.0 и XCode 4.5.1.
Обновление:, если вы хотите поддерживать iPhone 5, вам понадобится armv7s. Это требует исправления в https://issues.apache.org/jira/browse/CB-1360, который будет в Кордове 2.2.0. (Еще не пробовал, работая над проектом iPad.)
Я исправил это, удалив архитектуру armv6 и i386 из параметра Valid Architecture
У меня тоже была эта проблема. Я думаю, что это было из-за того, что ранее я установил старую версию телефонного разрыва, который установил некоторые вещи в xcode. Я удалил, а затем переустановил xcode. Затем я запустил Uninstall Cordova.applescript, который пришел с разрывом в телефоне. Это фиксировало проблему красного libCordova.a
В дополнение к нескольким другим предложениям и сообщениям я обнаружил, что испытываю эту проблему только для своих сборников AdHoc. Обратите внимание, что я понял это во время отладки, потому что, если я настрою конфигурацию Edit Scheme > Archive build для "release", она будет работать нормально, но если она установлена в AdHoc, это даст мне ошибку ссылки, сообщив мне, что этот файл не может быть найдено:
/Users/jason/Library/Developer/Xcode/DerivedData/MommyNearest-ceourmykvgxdekbkmzenuvhcfnzk/Build/Intermediates/ArchiveIntermediates/MommyNearest/BuildProductsPath/Adhoc-iphoneos/libCordova.a
На самом деле это было хорошим ключом к проблеме, которая заключалась в том, что каким-то образом подпроект CordovaLib не имел конфигурации AdHoc (он имел ТОЛЬКО конфигурации "Отладка" и "Отпуск" ).
Следовательно, при создании версии AdHoc (для использования с Testflight) она не создаст символическую ссылку для этого файла правильно. Когда я добавил конфигурацию AdHoc в подпроект CordovaLib, это начало работать.