Модуль Cocoapods с подспецификациями не устанавливается из-за конфликта имен платформ.IOS

Программируем под IOS
Ответить
Anonymous
 Модуль Cocoapods с подспецификациями не устанавливается из-за конфликта имен платформ.

Сообщение Anonymous »

У меня есть MyProduct.xcframework, который я распространяю вместе с Cocoapods в подспецификации, основанной на полеvendored_frameworks.
MyProduct.xcframework также зависит от другого XCFramework, называемого MyProductCore.xcframework.
На этом этапе я хотел бы создать дополнительные функции на основе этих двух фреймворков и распространить их в виде исходных файлов Swift (которые импортируют MyProductCore.xcframework).
В двух словах, вот структура моего репозитория:
  • Папка Frameworks: MyProduct.xcframework, MyProductCore.xcframework
  • Папка FeatureA: проект SomeFunctionality xcode
  • MyProduct.podspec
  • FeatureA.podspec
Для использования MyProduct и его дополнительные функции (например, FeatureA) в подфайле, это выглядит так:

Код: Выделить всё

pod 'MyProduct' ...
pod 'FeatureA/SomeFunctionality' ...
Проблема в том, что когда я запускаю установку модуля в тестовом приложении, я получаю следующую ошибку:

Код: Выделить всё

Downloading dependencies
-> Installing MyProduct (1.0.0)
-> Installing FeatureA (1.0.0)
- Running pre install hooks
[!] The 'Pods-DemoApp' target has frameworks with conflicting names: MyProductCore.xcframework.
Это содержимое MyProduct.podspec (показано только соответствующие биты):

Код: Выделить всё

Pod::Spec.new do |s|
s.name        = "MyProduct"
s.version     = "1.0.0"
s.platform    = :ios
s.ios.deployment_target = '12.0'
s.swift_versions = ['5.9.2']
s.source      = { :git => "path/to/my/repo.git", :tag => "1.0.0" }
s.requires_arc = true
s.vendored_frameworks = 'Frameworks/MyProduct.xcframework', 'Frameworks/MyProductCore.xcframework'
end
А это FeatureA.podspec:

Код: Выделить всё

Pod::Spec.new do |s|
s.name        = "FeatureA"
s.version     = "1.0.0"
s.platform    = :ios
s.ios.deployment_target = '12.0'
s.swift_versions = ['5.9.2']
s.source      = { :git => "path/to/my/repo.git", :tag => "1.0.0" }
s.requires_arc = true

# The default subspec which will be installed automatically.
# Note that it is a mandatory dependency for the optional subspecs defined below.
s.default_subspec = 'Core'

# Core subspec
s.subspec 'Core' do |core|
core.vendored_frameworks = 'Framework/MyProductCore.xcframework'
end

# Optional subspecs

# FeatureA capability
s.subspec 'SomeFunctionality' do |ss|
ss.source_files = 'FeatureA/SomeFunctionality/**/*.{swift, h}'
ss.dependency 'FeatureA/Core'
end
end
При запуске команд pod spec lint и pod lib lint ошибок не возникает.
Есть ли что-то, что я могу сказать? Мне не хватает этой настройки для работы с Cocoapods? Или просто что-то не поддерживается?
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/791 ... ting-names
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»