【发布时间】:2015-07-05 03:41:27
【问题描述】:
我有一个 swift 项目,其中包含一些通过 carthage 添加的框架。是否可以在项目内部的操场上使用这些框架以及如何使用它,因为
import Argo
没有用:(
【问题讨论】:
标签: swift xcode swift-playground carthage
我有一个 swift 项目,其中包含一些通过 carthage 添加的框架。是否可以在项目内部的操场上使用这些框架以及如何使用它,因为
import Argo
没有用:(
【问题讨论】:
标签: swift xcode swift-playground carthage
这在某个时候停止了工作。叹息
我现在要做的是
github "ReactiveX/RxSwift" 创建一个购物车文件并运行carthage update --platform iOS
此时我可以运行 Playground 文件了。
??♂️
如果 Playground 是构建配置为访问这些框架的目标的工作区的一部分,则它可以访问外部框架。
如果您想在现有的 carthage 项目中添加 Playground,只需将项目保存为工作区(文件 > 另存为工作区...),构建目标,就完成了。
如果您只想分发带有第三方框架的 Playground,则需要创建一个虚拟工作区。以下是使用 RxSwift 框架的游乐场的分步示例:
创建一个新的 Xcode 项目,类型为跨平台 > 其他 > 空。将其命名为 RxPlayground。
这将创建这个结构 RxPlayground/RxPlayground.xcodeproj 并打开一个空白 Xcode。
使用 Carthage 下载 RxSwift
github "ReactiveX/RxSwift" "swift4.0"
carthage update --platform iOS 运行 Carthage。 向项目添加游乐场。
创建工作区
将框架复制到产品目录。
此时,Xcode 和 Finder 看起来像这样:
注意 Carthage/ 和 Cartfile.resolved 会在你运行 Carthage 时出现,没有它们,你的 Playground 将只有几个 Ks。
最后,构建项目 (⌘B)。现在您可以在 Playground 中使用该框架了:
//: Playground - noun: a place where people can play
import RxSwift
_ = Observable<Void>.empty()
.subscribe(onCompleted: {
print("Completed")
})
有时在您第一次构建 (⌘B) Xcode 时不会注意到新框架(叹气)。我所做的是单击目标并返回源文件,或者重新打开项目。我无法解释为什么会发生这种情况。
【讨论】:
为了让框架在 Playground 中工作,生成框架的项目必须包含在项目的工作区中。因此,要完成这项工作,您需要遵循以下步骤:
File > Save As Workspace 为您的项目创建一个工作区。Carthage/Checkouts 文件夹拖到您的工作区中。【讨论】:
我通过将构建的框架复制到构建产品目录来解决这个问题,工作区中的 Playgrounds 也会在其中搜索框架。 注意:您还需要运行 lipo 并从 FAT 二进制文件中去除未使用的架构。
在此处查看更多信息: https://github.com/richardnees/CarthagePlaygrounds
【讨论】:
基于@Jano 的出色回答(感谢),我创建了一个功能齐全的游乐场来与 Carthage 框架进行交互:
https://github.com/backslash-f/carthage-playground
我以 Charts 框架为例:
我使用最新的 Xcode 进行了测试。
“在我的机器上工作。”??
【讨论】:
找到了如何做到这一点,而无需转换为工作区并将 Carthage/Checkouts 文件夹中的 .xcodeproj 文件添加到您的项目中。 如果您有一些包含您想在 Playground 中使用的所有源的框架目标,则此方法有效。该框架必须在您的主要目标的“嵌入式框架”中。
这对我有用
【讨论】: