微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用IBDesignable使用Swift软件包进行构建期间,IB产生非常奇怪的错误

如何解决使用IBDesignable使用Swift软件包进行构建期间,IB产生非常奇怪的错误

我开发了this shared package。很好。

In the package test harnesses (3 iOS apps),它很好用,并且IB情节提要板呈现了控件(这是IBDesignable)。

但是,当我将它作为一个软件包包含在另一个应用程序中时(我无法共享源代码),我得到了这些非常奇怪的渲染失败消息:

Error: 'UIPickerView' is unavailable in tvOS

以此类推。一堆“ tvOS中不可用”错误

这是日志的样子:

Image of build errors in the log

构建成功,应用运行正常。但是,我想知道这是否会在App Store发行过程中引起问题。

嗯... DU。这是一个iOS软件包和实用程序,并利用了诸如触觉之类的许多功能

该软件包明确指出它是iOS(12),并且我看不到任何说明为什么我的情节提要坚持要尝试渲染为tvOS的迹象。

我想念什么?我认为我肯定缺少the Package.swift file中的某些内容,但这很简单:

import PackageDescription

let package = Package(
    name: "RVS_Spinner",platforms: [
        .iOS(.v12)
    ],products: [
        .library(
            name: "RVS-Spinner",targets: ["RVS_Spinner"])
    ],targets: [
        .target(name: "RVS_Spinner")
    ]
)

解决方法

您需要将这些有问题的文件中的每一个包装起来

#if os(iOS)

#endif

这样它们就不会被编译用于其他平台,因为您所指的内容仅在 iOS 上可用。

据我所知,您无法阻止包在所有平台上构建,但您可以使用 #if os() 技巧选择要在哪个平台上编译的文件

我认为您对 platforms 文件中的 Package.swift 参数感到困惑。并不是说该软件包在何处可​​用,而是说每个平台所需的最低版本。

查看 Apple 的关于平台参数的文档:

平台 - 每个平台的最低部署目标列表。

Apple docs

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。