установка
У меня есть приложение для iOS MY-App
, в котором используется моя собственная структура MY-Framework
. Оба написаны на swift
. Приложение обрабатывает только аутентификацию пользователя и передает токен доступа MY-Framework
. Затем MY-Framework
обрабатывает весь ScreenFlow и бизнес-логику. Цель состоит в том, чтобы распространить MY-Framework
среди клиентов для использования в своих приложениях.
минимальный образец настройки проекта, демонстрирующий эту проблему, доступен здесь: https://github.com/vprimachenko/lottie-pod-problem-sample
теперь я должен был улучшить представление, предоставленное моей структурой, с некоторыми анимациями, и должен был использовать Лотти за это. я использую cocoapods version1.6.0-pre
Наивная попытка
я создал Podfile
со следующим содержанием
target 'fw' do
pod 'lottie-ios'
end
что привело к ошибке компиляции в фреймворке
./fw/fw/File.swift:4:8: error: no such module 'Lottie'
import Lottie
^
рамки
после некоторого поиска в Google я изменил свой Podfile
на:
target 'fw' do
use_frameworks!
pod 'lottie-ios'
end
результат: сбой во время выполнения
dyld: Library not loaded: @rpath/Lottie.framework/Lottie
Referenced from: .../Build/Products/Debug-iphonesimulator/fw.framework/fw
Reason: image not found
может модульные заголовки?
cocoapods примечания к выпуску упоминают use_modular_headers!
, давайте попробуем это:
target 'fw' do
use_modular_headers!
pod 'lottie-ios'
end
результат: ошибка компилятора в содержащем приложении
./app/app/ViewController.swift:3:8: error: missing required module 'Lottie'
import fw
^
Возможно оба?
target 'fw' do
use_modular_headers!
use_frameworks!
pod 'lottie-ios'
end
результат: сбой во время выполнения
dyld: Library not loaded: @rpath/Lottie.framework/Lottie
Referenced from: .../Build/Products/Debug-iphonesimulator/fw.framework/fw
Reason: image not found
взлом
после некоторых попыток я смог решить ситуацию, предоставив свой собственный заголовок для Lottie
, но это больше похоже на клейкую ленту, чем на правильное решение. Я все равно опубликую это позже в качестве дополнительного ответа.
Мой вопрос
как мне правильно интегрировать lottie-ios
cocopod таким образом, чтобы он полностью содержался в MY-Framework
, поэтому, когда я делюсь им с клиентом, они могут просто добавить его в свое приложение и не беспокоиться о каких-либо зависимостях?
К сожалению, выпуск его как частного модуля с зависимостями невозможен.
1.5.0
, и с1.6.0-pre
пробовал, приложение все равно вылетало - person Valerij   schedule 13.02.20191.6.0
. на самом деле я воспроизвел настройку в крошечном проекте, возможно, я перефразирую вопрос и свяжу этот пример, дайте мне несколько часов :) - person Valerij   schedule 13.02.2019