iOS 中 @available 命令的 Travis 错误

Posted

技术标签:

【中文标题】iOS 中 @available 命令的 Travis 错误【英文标题】:Travis error for @available command in iOS 【发布时间】:2019-12-04 15:44:03 【问题描述】:

我遇到了 Travis 和 Fastlane(健身房)的问题,但我还没有找到解决方法。

我通过 Cocoapods 添加了一个新的依赖项,并且在我的设备上一切正常,但是当我通过 Travis 运行它时遇到以下错误:

no known class method for selector 'labelColor' no known class method for selector 'systemBackgroundColor' no known class method for selector 'secondarySystemBackgroundColor'

在这些地方,有一个 @available 宏,因为它们在 13 以下的 ios 版本中不存在。

if (@available(iOS 13.0, *)) 
        return [UIColor labelColor];
     else if ([self isDarkColor:[self getBackgroundColor:config]]) 
        return [UIColor whiteColor];
    

那么为什么它在 Travis 中失败了?又该如何避免呢?

我现在所做的是在yaml 文件中定义Xcode11.1,但这还没有解决问题。有没有办法可以指定只为 iOS 13 运行它?

我添加了以下内容,但仍然失败:

osx_image: xcode11.1
language: objective-c
xcode_destination: platform=iOS Simulator,OS=13,name=iPhone X

谢谢!

【问题讨论】:

【参考方案1】:

您的yaml 文件中似乎有错字。

Per the travis documentation for Xcode 11:

os_image: xcode11.1

从您发布的值中删除 x

【讨论】:

你可以同时使用,对吧? docs.travis-ci.com/user/reference/osx/#macos-version 这是在你的 yaml 文件中吗:os: osx?

以上是关于iOS 中 @available 命令的 Travis 错误的主要内容,如果未能解决你的问题,请参考以下文章

“if (@available(iOS 13.0, *))” 在 Xcode 10.3 中无法编译

iOS - 系统方法中弃用的关键字的了解 NS_AVAILABLE和NS_DEPRECATED

prolog从左到右遍历非标准树

ios11 中的离子静默推送中断?即使 content-available = 1 也会显示空白通知

即使使用 #available(iOS 15.0, *),iOS 15 唯一的视图修饰符也会导致 iOS 14 崩溃

QuickBlox 是不是支持 iOS 7 的带有 content-available 标志的推送消息?