ошибки компоновщика mach-o с metaio

Я работаю с Metaio SDK и облачным плагином, и я не могу пройти мимо огромной коллекции ошибок компоновщика mach-o в xcode 5. Вот несколько, но у меня их 118:

Undefined symbols for architecture armv7s:
  "std::__throw_logic_error(char const*)", referenced from:
      tesseract::WordListLangModel::AddString32(int const*) in metaioSDK(word_list_lang_model.o)
      std::basic_string<int, std::char_traits<int>, std::allocator<int> >::basic_string(std::basic_string<int, std::char_traits<int>, std::allocator<int> > const&, unsigned long, unsigned long) in metaioSDK(word_list_lang_model.o)
      tesseract::ConvNetCharKSBmHGiVwS::Fold() in metaioSDK(conv_net_classifier.o)
      tesseract::HybridNeuralNetCharKSBmHGiVwS::Fold() in metaioSDK(hybrid_neural_net_classifier.o)
  "std::string::operator[](unsigned long) const", referenced from:
      tesseract::CubeUtils::SplitStringUsing(std::string const&, std::string const&, std::vector<std::string, std::allocator<std::string> >*) in metaioSDK(cube_utils.o)
  "std::string::find_first_of(std::string const&, unsigned long) const", referenced from:
      tesseract::CubeUtils::SplitStringUsing(std::string const&, std::string const&, std::vector<std::string, std::allocator<std::string> >*) in metaioSDK(cube_utils.o)
  "std::string::length() const", referenced from:
      tesseract::WordUnigrams::Create(std::string const&, std::string const&) in metaioSDK(word_unigrams.o)
      tesseract::TesseractCubeCombiner::ComputeCombinerFeatures(std::string const&, int, tesseract::CubeObject*, tesseract::WordAltList*, std::vector<double, std::allocator<double> >*, bool*) in metaioSDK(tesseract_cube_combiner.o)
      tesseract::ConvNetCharKSBmHGiVwS::LoadFoldingSets(std::string const&, std::string const&, tesseract::LangModel*) in metaioSDK(conv_net_classifier.o)
      tesseract::HybridNeuralNetCharKSBmHGiVwS::LoadFoldingSets(std::string const&, std::string const&, tesseract::LangModel*) in metaioSDK(hybrid_neural_net_classifier.o)

Установив цель развертывания на 6.0, я сократил количество ошибок до 6.

Undefined symbols for architecture armv7s:
  "_OBJC_CLASS_$_EKEventEditViewController", referenced from:
      objc-class-ref in metaioSDK(XDtLkdmsHtXjGTCxiIGVbMqenrFYqNevtLOSg)
  "_OBJC_CLASS_$_EKEvent", referenced from:
      objc-class-ref in metaioSDK(XDtLkdmsHtXjGTCxiIGVbMqenrFYqNevtLOSg)
  "_OBJC_METACLASS_$_MPMoviePlayerViewController", referenced from:
      _OBJC_METACLASS_$_ASMoviePlayerViewController in metaioSDK(ASMoviePlayerViewController.o)
      _OBJC_METACLASS_$_MoviePlayerViewController in metaioSDK(MoviePlayerViewController.o)
  "_OBJC_CLASS_$_EKEventStore", referenced from:
      objc-class-ref in metaioSDK(XDtLkdmsHtXjGTCxiIGVbMqenrFYqNevtLOSg)
  "_OBJC_CLASS_$_MPMoviePlayerViewController", referenced from:
      _OBJC_CLASS_$_ASMoviePlayerViewController in metaioSDK(ASMoviePlayerViewController.o)
      _OBJC_CLASS_$_MoviePlayerViewController in metaioSDK(MoviePlayerViewController.o)
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

person livinzlife    schedule 19.12.2013    source источник
comment
Что произойдет, если вы настроите таргетинг на более раннюю версию iOS?   -  person Robert    schedule 19.12.2013
comment
@Robert Это сократило их до 6! Я разместил оставшиеся 6 в редактировании выше. Любые другие отличные предложения?   -  person livinzlife    schedule 19.12.2013
comment
какую версию metaio SDK вы используете.   -  person Shabir jan    schedule 19.12.2013
comment
@Shabirjan Я думаю, 4,5   -  person livinzlife    schedule 19.12.2013
comment
Можете ли вы попробовать удалить armv7s из архитектур сборки (поскольку вы уже установили его только для iOS 6, вы не теряете ни одного реального устройства).   -  person Jai Govindani    schedule 19.12.2013
comment
@JaiGovindani Понизив цель развертывания до 6, я не смогу запустить это на 7? В настоящее время я пытаюсь построить ios7 iphone 5s.   -  person livinzlife    schedule 19.12.2013
comment
Понятно, просто хотел сделать еще один шаг в тестировании и посмотреть, уберет ли удаление armv7s остальные ошибки — поможет изолировать проблему от проблемы iOS 7/armv7s (с точки зрения фреймворков и т. д.).   -  person Jai Govindani    schedule 19.12.2013
comment
@JaiGovindani Если я удалю armv7 из допустимых архитектур и из архитектур, это не будет иметь значения.   -  person livinzlife    schedule 19.12.2013


Ответы (4)


Ошибка, которую вы показали для iOS 6, означает, что некоторые из фреймворков отсутствуют. Добавьте все эти фреймворки, показанные на изображении, чтобы они работали с iOS 6.

введите здесь описание изображения

и эта ссылка также может вам помочь.

Новое обновление:

После проверки вашего кода я обнаружил некоторые проблемы в вашем проекте. Вам не хватало StoreKit and StoreKitUI and MeidaPlayer Frameworks.

И некоторые из ваших настроек сборки были неправильными. Пожалуйста, используйте точные конфигурации, показанные на этих изображениях. Other Linker flag должно быть так:

введите здесь описание изображения

и C Language dialect должны быть такими: введите здесь описание изображения

и эта конфигурация будет точно такой же, как на этом изображении: введите здесь описание изображения

Я протестировал ваше приложение, используя все эти настройки, и теперь приложение отлично работает с iOS7 и iOS 6.

person Shabir jan    schedule 19.12.2013
comment
Я уверен, что у меня есть все фреймворки из этого списка. Я сделал другие изменения, и теперь я вернулся к 118 ошибкам. - person livinzlife; 19.12.2013
comment
можешь прислать проект? так что я могу проверить это для вас, моя электронная почта: iam.shabir yahoo.com - person Shabir jan; 19.12.2013
comment
отправлено на вашу электронную почту, если вы можете это исправить, сообщите мне, что вы сделали, чтобы я мог опубликовать это здесь для будущих людей. И чтобы я мог не забыть сделать это сам в будущих приложениях? - person livinzlife; 19.12.2013
comment
Смотрите мой обновленный ответ, тем временем я проверяю ваш проект. - person Shabir jan; 19.12.2013
comment
С вашим последним обновлением я вернулся к 6 исходным ошибкам, опубликованным в нижней части моего вопроса. - person livinzlife; 19.12.2013
comment
@livinzlife, пожалуйста, посмотрите мой обновленный ответ и проверьте свое приложение, используя эту конфигурацию, приложение у меня работает нормально. - person Shabir jan; 19.12.2013
comment
Теперь я получаю эту ошибку. Неверный или поврежденный файл AST: «несоответствующие заголовки зонтиков в подмодуле». Когда я нажимаю на ошибку, она ссылается на #import ‹XCTest/XCTest.h› - person livinzlife; 19.12.2013
comment
Вы проверили проект в своей электронной почте. - person Shabir jan; 19.12.2013
comment
пожалуйста, проверьте путь поиска фреймворка и путь поиска библиотеки, возможно, там неправильный путь. я только что успешно выполнил проект в своем xcode. - person Shabir jan; 19.12.2013
comment
понял ... пришлось добавить eventkit eventkitui для его запуска. Список необходимых фреймворков metaio (из их документации) далеко не соответствует фактическим требованиям. - person livinzlife; 20.12.2013
comment
Привет, я сделал то же, что и вы упомянули..... столкнувшись с ошибкой, подобной этой metaio::CreateUnifeyeMobileIPhone(std::string const&), на которую ссылается: -[UnifeyeMobileViewController viewDidLoad] в UnifeyeMobileViewController.o ld: символ(ы) не найден для архитектуры armv7 clang: ошибка: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов) - person ; 17.09.2016
comment
Пожалуйста, пожалуйста, помогите мне - person ; 17.09.2016

EKEventEditViewController указывает, что вы не связываетесь с EventKitUI.framework.

SLComposeViewController указывает, что вы не связываетесь с Social.framework

См. Здесь

person Balakrishnan Mca    schedule 30.05.2014

Я исправил все свои ошибки, обновив SDK, столкнулся с кучей проблем (здесь: http://helpdesk.metaio.com/questions/38835/ios81-unity-455-metaio-60-sdk-mach-o-linker-errors-in-xcode-61)

person Ahmed U3    schedule 19.04.2015

Прибил его с этими конфигурациями:

Фреймворки: Импортированные фреймворки

Добавить флаг компоновщика: Файл конфигурации

Изменить расширение ViewController на .mm: расширение мм

В настройках сборки установите язык C++ следующим образом: Настройки языка C++

И установите диалект языка C: Диалект языка C

Также:

Убедитесь, что все фреймворки связаны правильно

Убедитесь, что все файлы, которые вам нужны, зарегистрированы внутри «Фазы сборки > Источники компиляции».

Протестировано на iOS 8

person dianakarenms    schedule 27.07.2015