Swift новичок здесь, используя swift 3 на Linux с менеджером пакетов.Импорт локального быстрого модуля
У меня есть пакет, регулирующий, исполняемый файл и пакет Sibling Utils, предназначенный для библиотеки. Утилиты/Источники имеют файл TextReader.swift, а класс TextReader и его функция init - общедоступны. Каталог Utils является мерзавцем репо, описанный в Регулировать/Package.swift:
dependencies: [.Package(url: "../Utils", "1.0.0")]
Я попытался 3 способа создать экземпляр объекта TextReader в программе регламентировать и получил 3 сообщения об ошибках:
import Utils
...
let reader = TextReader(filename: name)
ошибка: использование неразрешенного идентификатора 'TextReader'
import Utils
...
let reader = Utils.TextReader(filename: name)
ошибка: модуль 'Utils' не имеет член с именем 'TextReader'
import class Utils.TextReader
ошибка: нет такой Децл в модуле
Похоже, модуль библиотеки не нуждается в дополнительной структурой объявить свой экспорт, возможно.
Что мне нужно сделать здесь? Благодаря!
Как выглядит 'Utils/Package.swift'? Можете ли вы успешно запустить 'swift build' на' Utils' автономно, а на 'Regulate' с зависимостью' Utils' в 'Package.swift', но нет кода для импорта' TextReader'? –
Utils/Package.swift имеет только имя: «Utils», и, похоже, он создает автономный - никаких жалоб и разумного вывода в .build. Кроме того, Regulate строит успешно с зависимостью Utils и импортирует Utils в код, но не ссылается на TextReader. – user1148758
Gotcha. Когда вы создаете 'Regulate', вы видите строку, которая клонирует' Utils', и вы видите исходный код 'Utils' с вашим подкаталогом' Regulate/Packages'? Кроме того, если вы не использовали 'swift package init' для начала работы с' Utils', возможно, стоит подкрепить его, попробовав новую инициализацию пакета и скопировав требуемый код в сгенерированную структуру пакета. –