Символ (ы) не найдены для архитектуры x86_64 - iOS - PullRequest
0 голосов
/ 04 июля 2018

У меня есть существующий проект (EP), написанный в Objective C. Наша команда решила разработать новый проект (NP) в Swift и добавить существующий проект (написанный в Objective C) в качестве функции в новом проекте ( показать существующее приложение на одной вкладке в качестве функции).

Вот что я сделал:

  1. Создан новый проект в Swift и добавлен существующий проект в качестве подпроекта в Xcode

  2. На этапах сборки нового проекта я добавил существующий проект (продукт сборки) в качестве целевых зависимостей.

  3. Создал Bridging Header для проекта Swift (новый project-Bridging-Header.h) и передал заголовок в Objective-C Bridging header как NP / NP-Bridging-Header .h в Настройки сборки нового проекта.

  4. В пути поиска заголовка я добавил $ (SRCROOT) / Path_To_Sub_Project и установил его как рекурсивный. (как в проекте, так и в цели нового проекта)

  5. Под Другие флаги компоновщика , добавлено -all_load и -ObjC .

  6. Добавлены необходимые файлы Objective-C в заголовочном файле моста.

Проблема: В новом проекте, когда я пытаюсь сослаться на целевой класс c, я получаю справочную проблему.

ViewController.swift
  //viewdidload
   let vc = HomeViewController() //This is an objective c class.

HomeViewController распознается Xcode, так как он автоматически заполняется во время набора текста, и Xcode не выдает никаких проблем в реальном времени. Но когда я пытаюсь построить новый проект, я получаю следующую ошибку.

Ошибка:

"_OBJC_CLASS_$_HomeViewController", referenced from:
      objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Цените ваше время.

1 Ответ

0 голосов
/ 04 июля 2018

Я подозреваю, что проблема связана с архитектурой, для которой вы компилируете.

...