Я создал собственный модуль Swift с помощью диспетчера пакетов Swift. Он предназначен для использования в Linux с Vapor (отсюда и использование SwiftPM), но я хочу сначала собрать и протестировать его в Xcode (т. е. с простым приложением macOS для внешнего интерфейса). Модуль строится нормально, но когда я добавляю его в свой проект Xcode (тестовое приложение), я получаю ошибку «Неопределенные символы для архитектуры x86_64», за которой следуют десятки ошибок, указывающих на код модуля. Целевой модуль определенно создается для macOS и определенно для x86_64. Так что же может пойти не так?
Невозможно использовать пользовательский модуль Swift в проекте Xcode
comment
Вы можете неправильно связать свой встроенный модуль, чтобы ваш источник не нашел ваш модуль.
- person Terence   schedule 14.02.2017
comment
Вы можете погуглить его и проверить, как его импортировать. Кстати, вы строите свой модуль как .framework? Если вы можете попробовать поместить его в Embedded Binaries вместо Linked Framworks и библиотек
- person Terence   schedule 14.02.2017
comment
Я нашел руководство, возможно, оно поможет настроить ваш проект. honzadvorsky.com/articles/
- person Terence   schedule 14.02.2017
comment
Хе... спасибо, но я прошел через это. Однако я только что создал простой тест, и он терпит неудачу при запуске из быстрого теста в командной строке (та же ошибка: неопределенные символы для архитектуры x86_64), поэтому явно что-то не так с самим модулем.
- person jbm   schedule 14.02.2017
comment
В этом случае Apple предоставила образец пакета github.com/apple/example-package-dealer, вы можете попробовать и посмотреть, существует ли проблема, если да, то, возможно, вы можете попробовать перезагрузить компьютер XD
- person Terence   schedule 14.02.2017
comment
Хорошо... (Извините за столько комментариев!) Проблема заключалась в том, что мой партнер оставил старый файл main.swift в Sources. Это привело к тому, что инструмент сборки создал исполняемый файл, а не библиотеку. Сейчас тест работает, поэтому я вполне уверен, что смогу запустить его в своей рабочей области. Ответ, который помог мне найти проблему, находится здесь: stackoverflow.com/questions/41322034/
- person jbm   schedule 14.02.2017