Pra*_*tti 12 macos xcode xcodebuild ios swift
我们可以通过多个命令从命令行构建和运行 Swift 代码/项目,而无需使用 Xcode。我听说过xcodebuild,xcrun并swift用于 Xcode 开发。我确实使用过fastlane,但我不太了解在幕后驱动它的工具。
我是一名使用 Mac 的 iOS 开发人员。我使用 Xcode 进行开发,因此之前没有使用过这些命令行工具。
每个命令之间有什么区别?在某些情况下,我最好使用其中一种而不是另一种?
Pra*_*tti 11
xcodebuild并xcrun帮助在无头环境中构建 Xcode 项目,例如在 CI 设置中。swift是 Swift REPL,主要用于服务器应用程序上的 Swift。因此,我们可以在不了解或经常使用移动应用程序开发中的工具的情况下构建应用程序。我们在后台使用 Xcode 进行交互,尽管我们没有意识到这一点,因为它们捆绑在xcodebuildXcode的命令行工具中(文档存档,但仍然相关)。xcrun
fastlane是一个示例 CI 工具,它使用这些工具自动执行构建过程、证书签名以及与 App Store Connect 的连接。
xcodebuild是 Xcode 捆绑的命令行工具包的一部分。从手册页:
构建 Xcode 项目和工作区
xcodebuild 构建 Xcode 项目中包含的一个或多个目标,或者构建 Xcode 工作区或 Xcode 项目中包含的方案。
xcodebuild有很多选项和用例。这些选项相当于 Xcode IDE 中的某些用户操作。用法示例:
xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme
Run Code Online (Sandbox Code Playgroud)
在 Xcode 工作区 MyWorkspace.xcworkspace 中构建方案 MyScheme。
在上面的命令中,我们在没有 Xcode 的情况下构建工作区,使用 Xcode 内部运行的编译工具。Xcode 只能安装在 macOS 上,并且我们在使用其命令行工具(包括xcodebuild和 )时也有相同的限制xcrun。
xcrun是 Xcode CLI 工具的另一个 Xcode 命令行工具。从手册页:
运行或定位开发工具
xcrun提供了一种从命令行查找或调用共存和平台感知开发工具的方法,无需用户修改 makefile 或采取其他不方便的措施来支持多个 Xcode 工具链。
xcrun [-sdk SDK] -find <tool_name>
Run Code Online (Sandbox Code Playgroud)
xcrun也常用于Xcode-select管理同一台计算机上的多个 Xcode 版本。每个版本的 Xcode 都捆绑了自己的开发工具,我们可以使用xcrun它来获取它们的当前路径:
xcrun xcode-select --print-path
Run Code Online (Sandbox Code Playgroud)
swift是 Swift REPL。swift是一个命令行工具,包括 Swift 工具链,但也可以安装在 Xcode 捆绑工具之外。swift与xcodebuild和不同xcrun,因为它是用 Swift 而不是 C 编译的。 MacOS手册swift页文档中没有详细记录,但是,Apple 已在其博客上记录了这些工具:
Xcode 6.1 引入了另一种试验 Swift 的方法,即交互式 Read Eval Print Loop(REPL)。
REPL本质上是一个交互式编译环境或 shell。首先,REPL 读取代码,然后对其求值、打印并重复该过程。正如您可以想象的那样,与 IDE 相比,我们使用 REPL 可以开发的东西要少得多。然而,除了 iOS、watchOS 和 macOS 开发之外,Swift 还有其他用例。
swift包括标准库,但不包括Foundation和 等库UIKit。iOS 或 macOS 开发几乎肯定需要这些 Swift 库,因此我们不能swift单独使用 REPL 来开发应用程序。然而,Swift on Server 项目经常用于swift在 Linux 甚至Windows机器上运行 Swift 代码。
为了更广泛地采用,Apple 已swift在 Xcode 不可用的不同操作系统上提供了可用的版本。Swift 现在还支持 Docker和 Windows。Docker 使我们能够在任何机器上运行,swift无论底层操作系统如何。swift在这些应用程序中充当脚本语言。
swift主要用于服务器上的 Swift。Swift on Server 为服务器应用程序提供了出色的性能,具有较低的内存占用、快速的启动时间和确定性的性能。尽管在某些任务上它不如 .NET core 快,但这是因为 Swift 具有严格的类型系统、ARC 垃圾收集以及针对特定于服务器的应用程序的较少优化,因此更加安全。许多早期采用者称赞改进的语言类型系统、内存效率和算法性能。事实上,Swift Vapor在 JSON 序列化任务的效率上与 Python 和 Ruby 相当。Swift 在极少数任务中可以与 Java 相媲美,但随着语言和生态系统的发展,这种情况可能会发生变化。
| 归档时间: |
|
| 查看次数: |
8152 次 |
| 最近记录: |