Согласно Material.podspec , есть только один большой модуль, а не подспец.
Вы можете создать свою собственную итерацию.
Создать MaterialTextField.podspec
файл с (это содержимое Material.podspec
с небольшой модификацией, помеченной ***).Вы можете избавиться от подспецификации и использовать только «спецификацию», поскольку другой подспец отсутствует, но я не хотел слишком сильно изменять файл.
Pod::Spec.new do |s|
s.name = 'MaterialTextField' ***
s.version = '2.16.4'
s.swift_version = '4.0'
s.license = 'BSD-3-Clause'
s.summary = 'A UI/UX framework for creating beautiful applications.'
s.homepage = 'http://cosmicmind.com'
s.social_media_url = 'https://www.facebook.com/cosmicmindcom'
s.authors = { 'CosmicMind, Inc.' => 'support@cosmicmind.com' }
s.source = { :git => 'https://github.com/CosmicMind/Material.git', :tag => s.version }
s.default_subspec = 'Core'
s.platform = :ios, '8.0'
s.subspec 'Core' do |s|
s.ios.deployment_target = '8.0'
s.ios.source_files = 'Sources/**/iOS/TextField.swift' ***
s.requires_arc = true
s.resource_bundles = {
'com.cosmicmind.material.icons' => ['Sources/**/*.xcassets'],
'com.cosmicmind.material.fonts' => ['Sources/**/*.ttf']
}
s.framework = 'UIKit' ***
# s.dependency 'Motion', '~> 1.4.3' ***
end
end
Я просто изменил строки с помощью***.
Я не уверен, что вам нужен s.framework для UIKit, и не знаю, можете ли вы обойти зависимость Motion
.
Возможно, вы также захотите удалить шрифты/xcassets.
Затем вы можете сделать
$> pod spec lint --verbose
Вы должны получить такие ошибки:
> ERROR | [MaterialTextField/Core] xcodebuild: MaterialTextField/Sources/iOS/TextField.swift:295:46: error: use of undeclared type 'IconButton'
Таким образом, существует объект IconButton
, которыйНе знаю (это зависит от него), поэтому вам нужно изменить podpsec:
s.ios.source_files = 'Sources/**/iOS/TextField.swift', 'Sources/**/iOS/IconButton.swift'
Чтобы добавить его.
Но для этого может потребоваться и другой импорт, так что вам нужно будетвыполнить много pod spec lint
до конца и т. д., и, возможно, потребуется исправить другие виды ошибок.
Возможно, в конце у вас будет целый модуль, потому что существует множество «взаимозависимостей».
В Objective-C поиск @class
и #import "File.h"
мог бы быть проще, чем в Swift, где импорт "неявный".
Кроме того, вы можете сохранить эту версию и, возможно, придется повторить все это снова в следующем обновлении своего модуля.
Наконец, если терпением и чудом вы получаете то, что хотите, вы можете добавить его в свой подфайл, используя:
pod 'MaterialTextField', :podspec => 'Relative/Path/To/MaterialTextField.podspec'
Я не уверен насчет этого (или :path
вместо :podspec
), но если я правильно помню, это следует сделать.
Будьте осторожны, вы можете прекратить использование лицензии.
Вы также можете спроситьавтор (открыть тикет?), чтобы разбить их модуль на несколько пакетов, например MaterialComponents.podspec (который я только что видел несколько минут назад, отвечая на другой вопрос).
РЕДАКТИРОВАТЬ:
Другой способ - избегать слишком много pod spec lint
, чтобы клонировать репозиторий, создать проект, добавить TextField.swift
, проверить, компилируется ли он, добавить недостающие файлы, проверить, компилируется ли он и т. Д.быть намного быстрее.