【问题标题】:Issue with CocoaPods 0.37.2 and KissXML 5.0CocoaPods 0.37.2 和 KissXML 5.0 的问题
【发布时间】:2015-05-31 17:24:27
【问题描述】:

XCode 6.3.2 CocoaPods 0.37.2 KissXML 5.0

从 CocoaPods 0.35.0 更新后,我很难让 KissXML 编译为 pod。

我遇到很多这样的错误:

错误:(2, 9) 'libxml/tree.h' 文件未找到包含;改用“引号”

我有一个共享代码的 Mac 和 iOS 项目,它们都以同样的方式失败。如果我重新安装 0.35.0,它们会构建得很好。

我应该提到,我在我的应用程序中定义了一个 DDXMLDocument 的子类以及 DDXMLElement 上的一个类别。

我尝试创建一个较小的项目来演示该问题,但无法创建一个以相同方式失败的项目,因此它必须是我的项目所独有的。

有人知道去哪里看吗?

布鲁斯

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, "7.1"
inhibit_all_warnings!
pod 'BButton'
pod 'CocoaAsyncSocket'
pod 'CocoaLumberjack'
pod 'CSNotificationView'
pod 'Dropbox-iOS-SDK'
pod 'HockeySDK'
pod 'KissXML'
pod 'MBProgressHUD'
pod 'MMMarkdown'
pod 'Reachability'
pod 'Reveal-iOS-SDK', :configurations => ['Debug']
pod 'SWRevealViewController'
pod 'UIDevice-Hardware'

【问题讨论】:

  • 你的 Podfile 是什么?由于 0.36.0 CocoaPods 需要在 Podfile 中明确指定源。见这里stackoverflow.com/questions/29034126/…
  • 恐怕不是问题。编辑以包含 Podfile。
  • 接口文件在哪里导入?看来您以错误的方式导入它
  • 我知道你说 Podfile 不是问题,但我看到当 use_frameworks! 不包含在 Podfile 中时会发生这种情况。也许这会导致这种情况?
  • 这是一个快速的项目吗?

标签: ios xcode cocoapods kissxml


【解决方案1】:

您必须在目标构建设置中将-lxml2 添加到OTHER_LD_FLAG,并将$(SDKROOT)/usr/include/libxml2 添加到目标的HEADER_SEARCH_PATHS。

清理并再次构建,它应该可以工作

【讨论】:

    【解决方案2】:

    使用这个 Podfile:

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, "7.1"
    
    target 'KissXML' do
    pod 'BButton'
    pod 'CocoaAsyncSocket'
    pod 'CocoaLumberjack'
    pod 'CSNotificationView'
    pod 'Dropbox-iOS-SDK'
    pod 'HockeySDK'
    pod 'KissXML'
    pod 'MBProgressHUD'
    pod 'MMMarkdown'
    pod 'Reachability'
    pod 'Reveal-iOS-SDK', :configurations => ['Debug']
    pod 'SWRevealViewController'
    pod 'UIDevice-Hardware'
    end
    

    成功使用这些 Pod:

    Installing BButton (4.0.2)
    Installing CSNotificationView (0.5.4)
    Installing CocoaAsyncSocket (7.4.1)
    Installing CocoaLumberjack (2.0.1)
    Installing Dropbox-iOS-SDK (1.3.13)
    Installing HockeySDK (3.7.1)
    Installing KissXML (5.0)
    Installing MBProgressHUD (0.9.1)
    Installing MMMarkdown (0.4.3)
    Installing Reachability (3.2)
    Installing Reveal-iOS-SDK (1.5.1)
    Installing SWRevealViewController (2.3.0)
    Installing UIDevice-Hardware (0.1.5)
    

    加上这个Bridging-Header.h

    #import "DDXML.h"
    

    ...我可以在 Swift 中成功创建、链接、构建和运行DDXMLDocumentSubclass:

    import UIKit
    
    class DDXMLDocumentSubclass: DDXMLDocument {
        // ...
    }
    

    ...和 ​​Obj-C 中的一个类别:

    //  DDXMLElement+Convenience.h
    #import "DDXMLElement.h"
    @interface DDXMLElement(Convenience)
        // ...
    @end
    

    【讨论】:

    • 我支持这个回复:悬空USER_HEADER_SEARCH_PATHS 是不是对Issue with CocoaPods 0.37.2 and KissXML 5.0 的有效回复。这是对我的项目没有构建,因为我破坏了它的回应。使用一组干净的 Pod 创建一个干净的项目将解决该问题以及所有其他 Xcode 项目损坏。
    【解决方案3】:

    没有一个答案是正确的或不需要的,但感谢您的回复。

    原来问题是对 Pods 文件夹的递归引用已添加到项目或目标 USER_HEADER_SEARCH_PATHS。

    我认为这可能是旧版本 CocoaPods 的产物...直到 AppCode 几乎立即提示我重新添加它。

    【讨论】:

    • 我可以建议您改写您的问题吗?递归的USER_HEADER_SEARCH_PATHS 与CocoaPods 或KissXML 没有任何关系。在某种程度上,将这两种技术与您的损坏的项目问题一起提及可能是有害和误导。
    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 2015-06-22
    • 2016-06-30
    • 1970-01-01
    • 2013-10-11
    相关资源
    最近更新 更多