首页 > 解决方案 > 找不到可可 podspec subspec swift 兼容性头文件

问题描述

Pod lib 找不到mymodule-swift.h标头。

我的objc.m文件之一导入以下代码。

#import <devillogin/devillogin-Swift.h>

Xcode 构建成功。一切都好。

但是当我尝试使用 pod 分发时,会打印以下错误。

pod lib lint mymodule.podspec

致命错误:找不到“devillogin/devillogin-Swift.h”文件

mylib.podpec的如下

Pod::Spec.new do |s|
...
  s.subspec 'DevilLogin' do |devilLogin|
    devilLogin.source_files = 'devillogin/devillogin/source/**/*.*'
    devilLogin.public_header_files = 'Pod/Headers/*.h'
    devilLogin.dependency 'devil/DevilCore'
    devilLogin.dependency 'KakaoSDK'
  end
end

podspec 中有任何语法mylib-swift.h吗?

标签: iosswiftobjective-ccocoapodssubspec

解决方案


我在回答自己。

我发现该问题仅在子规范中出现。

根 podspec 没有问题。

因此,我找不到让我的 pod-subspec 导入“XXX-swift”标头的方法。

但我找到了解决方法。

我引用了使用许多 pod-subspecs 的 firebase 框架。

https://github.com/firebase/firebase-ios-sdk

刚刚看了根 pod spect 和 1 subspec。

它将子规范分发为根 pod 规范,这在 'XXX-swift.h' 标头中是成功的

每个子规范都依赖于它上面。

有 Firebase.podspec 和 FirebaseDynamicLinks.podspec。

FirebaseDynamicLinks 是独立的独立框架。

但它实际上是子规格。

Firebase podspec 定义子规范如下。

这是解决方法

s.subspec 'DynamicLinks' do |ss|
    ss.dependency 'Firebase/CoreOnly'
    ss.ios.dependency 'FirebaseDynamicLinks', '~> 7.9.0'
end

它将 DynamicLinks 定义为子规范并定义对独立 FirebaseDynamicLinks 的依赖。

完毕


推荐阅读