Cocoapod podspec 验证 - 发生未知 DSL 错误
Posted
技术标签:
【中文标题】Cocoapod podspec 验证 - 发生未知 DSL 错误【英文标题】:Cocoapod podspec validation - Unknown DSL error occured 【发布时间】:2020-03-01 12:34:08 【问题描述】:我正在尝试将我的 pod 的新版本上传到 cocoapods 规范 repo。当前的实时版本是 0.3.1,它是一个使用 swift 4.2 构建的框架。现在我更新了库并使用 Xcode 11.1 (swift 5) 构建。但是在检查 podspec 文件时,我在终端中遇到了未知的 DSL 错误。
我尝试过更改 podspec 的名称并使用相同的框架。但没有用。有人请帮忙
pod spec lint AsistaCore.podspec --verbose
Podspec 文件
Pod::Spec.new do |spec|
spec.name = 'AsistaCore'
spec.version = '1.0.0'
spec.summary = 'Official Asista SDK in Swift to access Asista Platform core feature'
spec.description = <<-DESC
The Asista SDK in Swift Core framework provides:
* Create new tickets
* Update Ticket State
* Add comments to ticket
* Asset list
* Update profile
* Knowledge Base Articles
DESC
spec.homepage = 'https://asista.com/developer'
spec.license = :type => 'MIT', :file => 'LICENSE'
spec.authors = 'Cherrylabs' => 'vaisakh.kp@cherrylabs.com'
spec.documentation_url = 'https://asista.com/developer/docs/asista-sdk-for-ios'
spec.platform = :ios
spec.source = :git => 'https://github.com/cherrylabstech/asista-sdk-ios.git', :tag => spec.version
spec.swift_version = '5.0'
spec.ios.deployment_target = '8.0'
spec.static_framework = true
spec.ios.vendored_frameworks = 'AsistaSupport/AsistaCore.framework'
end
-> AsistaCore (1.0.0) - 错误 | [iOS] 未知:遇到未知错误(Pod::DSLError /Library/Ruby/Gems/2.6.0/gems/cocoapods-core-1.8.4/lib/cocoapods-core/specification.rb:808:in `rescue in _eval_podspec'
....
...
【问题讨论】:
你解决了吗? 你需要将 :tag 换成 :tag => "#spec.version" 【参考方案1】:我们在尝试创建版本和发布库时遇到了这个问题。当您尝试运行 pod spec lint 或 pod repo push 时会发生此错误。该错误显示“DSLError”,并没有提供太多关于导致它的信息。我在网上找到的帮助很少,有些地方他们说,podspec 文件中可能存在语法错误。我们的 podspec 中没有任何内容。但是,*** 的这个答案给了我一些方向https://***.com/a/64779582
看起来在为一个 SDK/库发布版本时,pod spec lint 和 pod repo push 会验证文件夹中的所有 podspec,除了您运行的那些。我不知道这在内部是如何运作的。您应该寻找以下情况来确定问题:
如果有其他 podspecs 用于具有不同标签的功能(例如:ABC.podspec
指向源标签 1.0.0-ABC
和 XYZ.podspec
指向源标签 2.0.0-XYZ
)
多个 podspec 依赖于同一模块的不同版本(例如:Module1.podspec
依赖于Module 5
版本10.0.0
和Module2.podspec
也依赖于Module 5
但依赖于版本11.0.0
)。
任何 podspec 中的语法错误
如果您遇到 1 和 2 中的一个或两个,则可能是 DSLError 的潜在原因。
当您遇到此问题时,请确保查找并更新以下内容:
所有 podspecs 都指向一个源标签
模块上的所有依赖项在每个功能中都指向它的一个版本。
修复 sytanx 错误。
如果可以将 SDK 库分离到各自的存储库中而不是全部放在一个存储库中,或者甚至将每个 podspec 保存在各自的文件夹中,这个问题就会消失或显着减少。
【讨论】:
以上是关于Cocoapod podspec 验证 - 发生未知 DSL 错误的主要内容,如果未能解决你的问题,请参考以下文章
在自定义 cocoapod 框架中使用 Pod 依赖项获得“使用未声明的类型”