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