Swift: использование частных фреймворков
Я построил iOS Swift с Xcode.
После написания кода я создал проект и взял файл .framework внутри папки "Продукты", чтобы проверить его.
Чтобы протестировать фреймворк, откройте новое приложение и перетащите ранее созданный файл .framework, и я добавил его во встроенный список исполняемых файлов моего проекта приложения.
Чтобы импортировать его в мой класс ViewController.swift, я написал:
import frameworkName
Нет проблем до сих пор, это означает, что проект видит структуру.
Когда я пытаюсь использовать открытый класс внутри рамки с помощью:
var x : className?
Я получаю следующую ошибку:
'className' is unavailable: cannot find Swift declaration for this class
Что это значит? В чем проблема?
Ответы
Ответ 1
Когда вы ссылаетесь на фреймворк в каталоге продуктов из своей рабочей области, убедитесь, что это "Встроенные продукты", а имя файла - это только имя фрейма без каких-либо дополнительных компонентов пути.
Если вы ссылаетесь на фреймворк, который не находится в вашей рабочей области, я бы рекомендовал использовать Carthage вместо копирования его непосредственно в ваш репозиторий. Это упростит управление версиями и обеспечит правильность его построения как для симулятора, так и для устройства.
Ответ 2
Для фактической самоопределенной структуры вам действительно нужно многое сделать.
Во-первых, убедитесь, что ур-фрейм используется на правильном устройстве. Это означает, что фрейм может использоваться только на соответствующем устройстве (либо в Simulator, Device и Mac). Другими словами, если структура A, построенная на симуляторе, инфраструктура импорта проекта A может только компилироваться и успешно строиться на симуляторе.
P.S. если требуется универсальная версия, команда -lipo - это то, что вам нужно продолжить исследовать.
Во-вторых, во время реализации ур-рамки убедитесь, что все классы, методы и переменные u хотят использовать снаружи, начиная с Public
.
В-третьих, проверьте настройки проекта ур Embedded Binaries
и linked Frameworks and Libraries
, чтобы включить рамочную программу ur.
Ответ 3
Если вы создали толстый бинарный файл с инструментом "lipo", не делайте этого.
Он отлично работает с разделенной структурой.
Мне нужно найти другой инструмент двоичного комбайна, отличный от lipo