ios - 如何构建适用于 iOS 和 macOS 的混合包?
问题描述
如何在 Xcode 11 的包中处理旨在在不同目标(如 iOS、macOS、tvOS 等)上运行的代码?
我的意思是:我有要转换为包的代码。这段代码有适用于 macOS 和 iOS 的故事板,以及使用这些故事板运行的 swift 类,或者换句话说,有在 macOS 上运行的 swift 类和在 iOS 上运行的其他类。
我希望能够创建一个可以在任何项目上导入的包,如果该项目仅适用于 iOS、仅适用于 mac 或具有两种架构的目标,则独立。
最大的问题是该包没有目标,我可以在其中为其分配一个文件。
苹果有这个例子,他们告诉你可以指定平台。
let package = Package(
name: "MyPackage",
platforms: [
.macOS(.v10_13), .iOS(.v11), .tvOS(.v11),
],
但正如预期的那样,他们的文档没有显示如何。
我怎么做?
解决方案
SwiftPM 目前不支持情节提要和其他资产,因此您不能对它们执行此操作。
如果您只有源代码,那么您可以在用于特定操作系统的文件的所有内容周围使用#if os(iOS)
/块。#if os(macOS)
您将希望将所有文件放在同一个产品中,以便使用模块在import TheNameOfYourModule
任何地方都可以使用,而不是使用 iOS/macOS 特定的导入语句。
推荐阅读
- python-3.x - 将 kv 文件中的标签文本绑定到 python 文件中的方法
- java - 我怎么能说一个字符串匹配我的模式
- python - python中的正弦平方
- pgadmin - 哪个版本的 pgAdmin 开始使用主密码?
- vba - 显示随机值的 MS Access 组合框
- java - 带有@Bean 的@ConfigurationProperties 不会从类路径加载默认值
- r - 从 Rcpp 中的 beta 分布生成样本的更好方法
- mysql - 如何在 RDS MySQL 中限制非 SSL 连接
- c# - How to change FontStyle back in RichTextBox?
- wpf - 如何在 XAML 中将直线剪裁成椭圆