如何在我的 Swift 项目中包含一个库?
Posted
技术标签:
【中文标题】如何在我的 Swift 项目中包含一个库?【英文标题】:How to include a Library into my Swift Project? 【发布时间】:2017-08-08 03:46:23 【问题描述】:我想在 Swift 中读取 .csv 数据,所以我已经告诉我如何做到这一点。 最后我进入了这个: https://github.com/Flinesoft/CSVImporter CSVImporter。
但它说:“你当然也可以通过下载这个框架手动将它包含到你的项目中”。
没关系,但是有几个文件夹,而且我以前从未将库导入 Swift,所以我不知道要下载什么以及应该将它包含到我的项目中的什么位置。
我希望,任何人都可以帮助我。 谢谢。
【问题讨论】:
您可以参考此tutorial 以成功将库(即框架)包含(即导入)到项目中。显然,每次在终端中运行carthage update
命令时,您都可以拥有更新的框架
【参考方案1】:
导入第三方依赖的最佳方式是通过依赖管理器:CocoaPods/Carthage/SPM,您将能够轻松更新库。
1. CocoaPods [Offical Guide]
这是迄今为止最简单的方法......
打开终端
安装 CocoaPods(在终端中输入):
sudo gem install cocoapods
Sudo 意思是“超级用户做”,它需要你的密码。按要求输入。
接下来,您需要设置 cocoapods 主存储库。输入终端:
pod setup --verbose // verbose option logs the setup progress
然后在您的项目目录中创建一个 pod 文件(如果您不习惯编写路径,您可以键入“cd”并将项目文件夹拖到终端窗口):
cd User/Projects/YourProject // make way to your project dir
pod init
然后在 Podfile 中(在项目目录中找到它)插入:
platform :ios, '8.0'
use_frameworks!
target 'YouAppTarget' do
pod 'CSVImporter', '~> 1.7'
end
(取消注释平台 :ios, '8.0' 取消注释 user_frameworks!如果您使用的是 Swift)
运行(在您的项目目录中):
pod install
会生成Xcode .xcworkspace文件,就是这样,你可以打开它并使用框架;]
稍后您可以使用以下命令更新 lib:
pod update
2。迦太基 [Offical Guide]
通过 Carthage 安装框架的步骤与 CocoaPods 非常相似,请按照“官方指南”链接查看有什么区别。 这个依赖管理器的一个缺点是并非所有的库都可用。有些仅适用于 CocoaPods,但大多数新的都支持 Carthage。 附:这是一个很好的article,关于差异。
3. Swift 包管理器 [Offical Overview/Guide]
SPM 是一个原生依赖管理器,它是跨平台的,受 Apple 官方支持,去中心化和开源。
计划作为 CocoaPods 和 Carthage 的替代品,所以我也想试试。
【讨论】:
不下载“it”并将其包含在 swift 项目中的优势在哪里? @Blub 大量优势:1. 来自创作者和社区的定期改进/错误修复 2. 语言更改,如果您迁移到新版本并且 lib 不会更新,您将不得不再次下载它,拖到项目等。 3. 一旦你习惯了 pod 和终端,你将在几分钟内将框架添加到你的项目中,这将排除在你手动添加库时可能发生的许多错误. 4. 通过 pod 文件,您可以轻松管理所有库的版本,删除不需要的等。还有更多,但我建议您自己发现它;] 但我有几个问题: 1. 什么是 pod 文件? 2.我应该把你在终端里写的所有代码都写出来吗? 1.基本上是一个名为 Podfile 的文本文件,在您在终端中执行“pod init”命令后生成。 2.几乎,我已经更新了答案,以便更容易理解。这只是终端中的几行代码;) 但是当我在终端输入 sudo gem install cocoapods 时它需要一个密码【参考方案2】:您可以将 CSVImporter.xcodeproj 拖放到您的项目中,也可以在嵌入式二进制文件中包含 CSVImporter。
【讨论】:
Zoe 把它放到项目中是什么意思?我不知道在哪里做这个! 1. *你 2. 在嵌入式二进制文件中包含 CSVImporter 是什么意思?你能给我解释一下吗? 你在使用 XCode 吗?以上是关于如何在我的 Swift 项目中包含一个库?的主要内容,如果未能解决你的问题,请参考以下文章
如何在我的 cmake 项目中包含另一个 cmake 项目的头文件?
如何在我的项目中包含 Bootstrap 3 和 JQuery 数据表?
在 Swift 项目中包含 SQLCipher pod 时如何避免构建错误?