Ona*_*ato 18 swift swift2 swift-package-manager
我的项目中有一个Package.swift,如:
import PackageDescription
let package = Package(
name: "ProjectName",
dependencies: [
.Package(url: "https://github.com/intellum/neeman.git", majorVersion: 0)
]
)
Run Code Online (Sandbox Code Playgroud)
当我跑步时,swift build我得到的错误就像......
/project/Packages/WebViewController.swift:1:8: error: no such module 'UIKit'
import UIKit
^
Run Code Online (Sandbox Code Playgroud)
我应该在哪里告诉swift包管理器在哪里找到UIKit?
Moj*_*ini 41
您应该选择一个基于 iOS 的目标以使其可用:
如果您选择 macOS(默认情况下),您将收到错误消息。
如果您希望您的包仅适用于特定平台(例如仅适用于 iOS),您应该在文件中指定平台package.swift:
let package = Package(
name: "MyLibrary",
platforms: [
.iOS(.v10)
],
products: [
,,,
Run Code Online (Sandbox Code Playgroud)
如果您需要框架在多个平台上可用,请不要忘记检查导入框架的可用性,例如:
#if canImport(UIKit)
import UIKit
#endif
Run Code Online (Sandbox Code Playgroud)
小智 32
您必须更改一些 swiftc 选项才能针对正确的 sdk 和目标构建项目
swift build -Xswiftc "-sdk" -Xswiftc "`xcrun --sdk iphonesimulator --show-sdk-path`" -Xswiftc "-target" -Xswiftc "x86_64-apple-ios13.0-simulator"
Run Code Online (Sandbox Code Playgroud)
Joe*_*ick 18
目前 Swift Package Manager 有完整的 Xcode 支持。我能够通过在我的 Package.swift 清单中指定平台是 iOS 来解决这个错误。
let package = Package(
name: "MyPackage",
platforms: [
.iOS(.v8)
],
Run Code Online (Sandbox Code Playgroud)
然后你可以在 Xcode 中打开 Package.swift 文件,它就会正常工作。
GoZ*_*ner 15
Swift Package Manager构建可在OS X(或Linux)上运行的可执行文件; UIKit是iOS中的一个框架,无法访问.
随着Swift Package Manager的发展,它可能会被iOS,tvOS和其他人访问.
2015年12月4日下午5:39,Daniel Dunbar(@ apple.com)写道:
...
是的,现在我们只编译主机平台(OS X或Linux,目前).除此之外,我们目前还没有您所定位的SDK或架构的知识(或选项).我们也没有机制来指定清单中哪些平台目标兼容.
| 归档时间: |
|
| 查看次数: |
3999 次 |
| 最近记录: |