【问题标题】:Cocoapod podspec validation - Unknown DSL error occuredCocoapod podspec 验证 - 发生未知 DSL 错误
【发布时间】: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}"

标签: ios swift frameworks cocoapods


【解决方案1】:

我们在尝试创建版本和发布库时遇到了这个问题。当您尝试运行 pod spec lint 或 pod repo push 时会发生此错误。该错误显示“DSLError”,并没有提供太多关于导致它的信息。我在网上找到的帮助很少,有些地方他们说,podspec 文件中可能存在语法错误。我们的 podspec 中没有任何内容。但是,stackoverflow 的这个答案给了我一些方向https://stackoverflow.com/a/64779582

看起来在为一个 SDK/库发布版本时,pod spec lint 和 pod repo push 会验证文件夹中的所有 podspec,除了您运行的那些。我不知道这在内部是如何运作的。您应该寻找以下情况来确定问题:

  • 如果有其他 podspecs 用于具有不同标签的功能(例如:ABC.podspec 指向源标签 1.0.0-ABCXYZ.podspec 指向源标签 2.0.0-XYZ

  • 多个 podspec 依赖于同一模块的不同版本(例如:Module1.podspec 依赖于Module 5 版本10.0.0Module2.podspec 也依赖于Module 5 但依赖于版本11.0.0)。

  • 任何 podspec 中的语法错误

如果您遇到 1 和 2 中的一个或两个,则可能是 DSLError 的潜在原因。

当您遇到此问题时,请确保查找并更新以下内容:

  • 所有 podspecs 都指向一个源标签

  • 模块上的所有依赖项在每个功能中都指向它的一个版本。

  • 修复 sytanx 错误。

如果可以将 SDK 库分离到各自的存储库中而不是全部放在一个存储库中,或者甚至将每个 podspec 保存在各自的文件夹中,这个问题就会消失或显着减少。

【讨论】:

    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2019-10-07
    • 2012-01-27
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    相关资源
    最近更新 更多