2017-01-19 11 views
2

У меня возникли проблемы с компиляцией моего приложения (проект приложения Xcode), когда моя инфраструктура (проект инфраструктуры Xcode) связана и файлы добавлены в фреймворк (не используется в приложении).Включить проект рамки в мой проект в Xcode 8

Что я сделал:

  1. Создать папку MyProject
  2. Создание Xcode одного вида проекта (проект MyApp) -> выход это папка MyApp внутри папки MyProject, содержащий все данные
  3. Создать Xcode (проект MyFramework) -> вывод этой папки MyFramework внутри папки MyProject, содержащей все данные
  4. Создание рабочего пространства и импорт обоих проектов в рабочую область -> вывод этого файла .xcworkspace в папке MyProject

Таким образом, после этого у меня есть иерархия:

-> MyProject

---> MyApp

---> MyFramework

---> MyWorkspace.xcworkspace

Затем на вкладке «Общие» проекта MyApp я добавил в встроенные двоичные файлы моей рамки. Это связало мою инфраструктуру с моим приложением, и когда я скомпилировал ее, мое приложение стало нормально работать по телефону.

После этого я добавил в инфраструктуру одну пару классов Objective-C .h/.m, добавив их в целевую среду фрейма (скомпилированные источники имеют .m-файл, заголовочный файл выбран как открытый).

Когда я пытаюсь скомпилировать и запустить приложение еще раз на устройстве, я получаю ошибку:

Undefined symbols for architecture arm64: 
    "_OBJC_CLASS_$_UNIRest", referenced from: 
     objc-class-ref in TMSCommunicationManager.o 
ld: symbol(s) not found for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
+0

ли вы строите свою структуру после добавления новых классов? – shallowThought

+0

Пытался самостоятельно построить фреймворк (выбор виртуального устройства/симулятора/телефона), и он не справляется с той же ошибкой. Также попытался удалить класс, затем ошибка становится ошибкой, указывающей на другой класс. Затем я пытаюсь удалить все, кроме заголовка, сгенерированного фреймворком, и он компилируется отлично и отлично работает на устройстве. – Aleksandar

+0

Я подозреваю: вам нужно создать устройство, если вы хотите запустить приложение на устройстве, так как вы настроили «Build Active Architecture Only = YES» (в настройках сборки) для вашей текущей конфигурации. Вероятно, 'Debug'. – shallowThought

ответ

0

Перейти к Цели вашего проекта -> Build Settings, затем:

Try Настройка Ваша Архитектура Установки для: $ (ARCHS_STANDARD)

и установить "Построить Активную архитектуру" до Нет

Надеется, что это не помогает :-)

 Смежные вопросы

  • Нет связанных вопросов^_^