Я хочу создать модуль, который содержит только структуру и ресурсы пакета, предоставляемые открытой платформой другой компании. Но я столкнулся с некоторой проблемой.
В проекте Objective-C
В первый раз я только что создал файл podspec, который включал только фреймворк с использованием ресурсов s.ios.vendored_frameworks
и пакета. И он прошел проверку при запуске pod spec lint
. Затем я импортировал его в проект Objective-C в podfie, и это работает, когда я запускаю pod install
, и я могу импортировать фреймворк в свой код с помощью #import <xxx/xxx.h>
Но я обнаружил, что в файле проекта xcworkspace он автоматически сгенерировал схему, как на картинке выше. Кажется, сгенерированная схема предназначена для Mac. Назовите это ситуацией А
Если я добавлю в модуль пользовательский новый класс с именами Version.h и Version.m и обновлю файл podspec с помощью s.source_files = "Classes", "Version/*.{h,m}"
, то при запуске pod install
будет сгенерирована статическая библиотека, это то, что я хочу, и результат, который я думаю должно быть. Назовите это ситуацией Б
Итак, вопросы:
Почему модуль генерирует схему для Mac, если я не включил какой-либо пользовательский файл класса, и имеет ли это значение?
почему модуль генерирует статическую библиотеку, когда я включаю пользовательский класс?
В быстром проекте
Вторая часть: мне также нужно импортировать модуль в быстрый проект. И я также столкнулся с simular проблемой.
В настоящее время в podfie я использую ключевое слово use_frameworks!
.
В ситуации A: я не могу импортировать фреймворк,нет такого модуля xxx, ошибка компилятора.
В ситуации B: не удалось собрать Objective-C moulde xxx, ошибка компилятора, я пытаюсь очистить и удалить каталог DerivedData, но это не сработало. И он не генерирует карту модулей и файл xx-umbrella.h. Та же проблема, которую я обнаружил, когда использую Google Ad SDK
pod 'Google-Mobile-Ads-SDK', "~> 7.4.0"
В ситуации A, когда модуль генерирует проект модулей, он не устанавливает цель из моего модуля. В ситуации Б он устанавливает цель из моего модуля. как следующий журнал из модуля
//situation b
- Creating Pods project
- Adding source files to Pods project
- Adding frameworks to Pods project
- Adding libraries to Pods project
- Adding resources to Pods project
- Linking headers
- Installing targets
- Installing target `AliPay` iOS 8.0
//situation a
- Creating Pods project
- Adding source files to Pods project
- Adding frameworks to Pods project
- Adding libraries to Pods project
- Adding resources to Pods project
- Linking headers
- Installing targets
- Installing target `Pods-NewCategory` iOS 8.0
- Generating Info.plist file at `Pods/Target Support
Files/Pods-NewCategory/Info.plist`
- Generating module map file at `Pods/Target Support
Files/Pods-NewCategory/Pods-NewCategory.modulemap`
- Generating umbrella header at `Pods/Target Support
Files/Pods-NewCategory/Pods-NewCategory-umbrella.h`
- Running post install hooks
- Итак, почему модуль не может работать с быстрым проектом, я что-то делаю с использованием модуля или потому, что фреймворк.
Под, который я создал, размещен на github, тег 0.0.1 создан для ситуации A, тег 0.0.2 создан по ситуации Б.