【问题标题】:Swift, Cocoapods and ios 7 compability, OAStackViewSwift、Cocoapods 和 ios 7 兼容性、OAStackView
【发布时间】:2016-03-18 22:10:10
【问题描述】:

是否正确理解 cocoapods 使用 swift + ios 7 工作(并且不会在 iTunes 提交过程中被拒绝)我只能使用 OAStackView 等 Objective-C 框架/库?

我相信大家的共识是,如果你尝试通过 cocoapods 使用任何 swift 东西,它只会在 ios8+ 中工作,但如果你有一个通过 cocoapods 使用 Objective-c 东西的 swift 项目,一切都很好吗?

让我很困惑的是……

  • OAStackView 是作为 UIStackView 的替代品构建的,因此我们可以 支持ios7
  • 它支持 cocoapods
  • 但是 XCode 给出警告“嵌入式 dylibs/框架只能在 iOS8 上运行 或以后

所以... Tha 表示 cocoapods 不能用于针对 ios7 的 Swift 项目?

【问题讨论】:

    标签: swift ios7 cocoapods


    【解决方案1】:

    Swift 库只能用作框架。框架仅在 iOS 8 及更高版本中受支持(使用 CocoaPods 选项 use_frameworks)。因此,支持 iOS 7 的最简单方法是下载库的源文件并将它们包含在您的项目中。

    您可以在这里查看可能的解决方法https://github.com/CocoaPods/CocoaPods/issues/2926#issuecomment-136766631,但我自己还没有尝试过。

    更新: 如果你只有 Objective C 库并且只支持 iOS 8+,你可以选择是否使用 use_frameworks。但是为了支持 iOS 7 use_frameworks 应该被移除。

    【讨论】:

    • 但是 OAStackView 是一个 objecive-c 库......(我用这个作为例子,因为它很受欢迎)所以它应该根据我读过的内容工作(是的,我自己的项目很快,但我正在尝试在其中使用objective-c库),但仍然给出警告
    • @Tom 你的 pod 文件中有 use_frameworks 行吗?如果是 - 删除此行。
    • 在我的默认 podfile 中,它声明“如果您使用的是 Swift,请取消注释此行”,其中下面的行是“use_frameworks!” - 因此我取消了该行的注释。是不是搞错了?
    • @Tom 意思是“如果你使用的是 Swift libraries,请取消注释这一行”。由于 OAStackView 在 Objective C 中,您可以(并且您应该支持 iOS 7)将此行注释掉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 2015-03-05
    • 2016-12-06
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多