Tag: 软件包管理

Swift软件包管理器

Swift软件包管理器与Swift 3.0一起正式发布,是一种在macOS和Linux上创建Swift库和应用程序的新方法。 它可以帮助您管理依赖关系,并允许您轻松地构建,测试和运行Swift代码。 重要的是要注意,作为Swift 3,Swift软件包管理器仅针对主机平台进行编译。 换句话说,目前您将无法为iOS,watchOS或tvOS构建或使用软件包。 我们走吧!! 开始之前,请确保已安装Swift 3.0或更高版本。 Swift 3包含在Xcode 8.0+中,因此,如果您具有Xcode 8或更高版本,则可以开始使用。 实际上,您甚至不需要Xcode即可完成本教程的大部分内容。 您只需从swift.org安装Swift 3。 打开一个新的终端窗口,然后键入swift package 。 您将看到命令概述。 您将使用的主要命令是: swift package init以创建新包 swift package update以更新swift package update的依赖关系 swift package generate-xcodeproj为您的软件包生成一个Xcode项目 要了解Swift包管理器,您将创建一个命令行应用程序,该应用程序使用一个小型库来为任何国家/地区打印表情符号标志。 您将从创建可执行程序包开始。 这些程序包是命令行应用程序。 Swift Web应用程序也属于此类。 通过在终端中运行以下命令来创建Flag可执行程序包: mkdir标志 cd标志 swift package init –type可执行文件 当前目录Flag在运行swift package init时很重要,因为它成为生成的包的名称。 您会在输出中看到一些为您创建的文件和文件夹。 花一些时间来熟悉项目结构: Package.swift具有您的程序包描述,还将具有您程序包的依赖性。 顾名思义, Sources/是所有Swift源文件的存放位置。 还为您创建了一个main.swift文件。 这将是您的应用程序的入口点。 现在,它将向终端打印“ […]

迦太基或CocoaPods:这是问题

该帖子最初发布在我的个人博客中 。 阅读原始帖子,这样您就不会错过任何内容。 每种成熟和现代的编程语言都提供了一种官方的代码分发解决方案,以共享和重用已经编写的代码。 共享,分发和重用代码的机制通常由程序包管理器处理。 流行的软件包管理器的示例包括用于Ruby的RubyGems,用于PHP的Composer,用于NodeJS的NPM,用于Java的Gradle等,它们不仅提供官方解决方案,而且具有集中的存储库来托管开发人员创建的软件包。 但是,Apple例外,Objective-C和Swift之类的语言已公开发布,而没有正式支持程序包管理解决方案或具有用于存放程序包的集中存储库。 这为第三方公司或开发人员提供了构建非官方工具来管理Objective-C或Swift软件包的机会。 这就是诸如Cocoapods和Carthage之类的工具进入市场并获得普及的原因。 目前,iOS的Swift依赖性管理目前只有两个主要选项,即Cocoapods和Carthage。 Apple目前正在使用的官方软件包管理器是Swift Package Manager,用于共享和分发Swift软件包,它将取代iOS开发领域中的当前软件包管理器。 但是,它的发展正在成为速度乌龟,目前它不支持iOS,因此现在不值得考虑。 有一种解决方法可使其与iOS项目的Xcode模板一起使用,但可能会在更高版本的Xcode中破坏。 等待耐心等待苹果宣布对iOS应用程序提供Swift Package Manager官方支持是个好主意。 我们可以希望有一天,iOS开发人员将拥有Apple提供的iOS官方软件包管理解决方案。 在本文中,我们将对Swift依赖项管理器CocoaPods和Carthage进行严格评估,以便iOS开发人员可以为其应用程序做出正确的选择。 可可豆 爱它或恨它,您必须使用它。 Cocoapods自从Objective-C时代就存在了,并且也可以与Swift一起使用。 到目前为止,这实际上是用于iOS项目的依赖管理,这是事实上的标准工具。 CocoaPods是一个Ruby库,需要使用RubyGem进行安装。CocoaPods具有可在Xcode项目中使用的所有软件包的集中存储库。 CocoaPods不是单个项目,而是使用Ruby编写的项目的集合。 我在这里简要介绍了Ruby和iOS生态系统的历史。 CocoaPods是使用Ruby构建的,并且可以使用OS X上可用的默认Ruby安装。 $ sudo gem install cocoapods 如果您来自Ruby开发背景,则可以使用RVM和Bundler来管理Ruby和Ruby库的版本。 可以使用pod init命令初始化CocoaPods,该命令将创建模板Podfile,但是我们可以创建自己的简单Podfile,如下所示 平台:ios,“ 8.0” use_frameworks! 以“ MyApp”为目标 pod’SwiftyJSON’,’〜> 2.3′ 结束 这将设置SwiftyJSON,这是非常流行的Swift库,用于为My App目标解析JSON。 现在,我们可以使用magical命令下载依赖项 $ pod安装 执行此命令后,您会感到困惑,并且可能无法识别旧的Xcode项目,因为CocoaPods使用此神奇的命令对Xcode项目进行了许多更改。 我敢肯定,只要iOS应用可以在pod install命令之后编译并正确构建,我们当中就不会有很多人会费心去知道发生了什么变化。 我们将简要介绍安装后发生的变化。 CocoaPods做了哪些更改? […]