#XcodeHelperCli
XcodeHelperCli 让您留在 Xcode 中,无需使用命令行。它基于 XcodeHelperKit 构建。
结合所有这些功能,Xcode 和 Xcode Server 就能够处理 macOS 和 Linux(通过 Docker)的持续集成和交付,这样我们就不必使用像 Jenkins 这样的中间构建服务器了。
##命令
##build
在 Linux 中构建 Swift 包,并将构建错误显示在 Xcode 中。
在 macOS 上的 Xcode 中构建和测试您的 Swift 代码是一回事。但是,之后您必须启动 Docker,并确保在 Linux 端不存在任何库差异或未实现的语言功能。这有点麻烦。XcodeHelper 通过简化跨平台 Swift 开发的 Linux 端,减轻了这些痛苦。
xchelper build SOURCE_CODE_PATH [OPTIONS]
选项 | 描述 |
---|---|
build 或环境变量 BUILD_CONFIGURATION |
在 Linux 中构建 Swift 包,并将构建错误显示在 Xcode 中。SOURCE_CODE_PATH 是您的包的根目录,将在其中调用 “swift build”。 |
-c , --build-configuration 或环境变量 BUILD_CONFIGURATION |
debug 或 release 模式 |
-i , --image-name 或环境变量 BUILD_DOCKER_IMAGE_NAME |
运行命令的 Docker 镜像名称。默认为 saltzmanjoelh/swiftubuntu |
#####或者添加一个单独的“外部构建”目标,并手动在 macOS 构建和 Linux 构建之间切换
##update-packages
xchelper update-packages SOURCE_CODE_PATH [OPTIONS]
选项 | 描述 |
---|---|
update-packages ,或环境变量 UPDATE_PACKAGES |
通过 swift package update 更新包依赖项。SOURCE_CODE_PATH 是您的包的根目录,将在其中调用 swift package update 。 |
-l , ----linux-packages 或环境变量 UPDATE_PACKAGES_LINUX_PACKAGES |
某些包具有 Linux 特定的依赖项。使用此选项更新包的 Linux 版本。Linux 包可能与 macOS 依赖项不兼容。在更新之前会执行 swift build --clean 。默认为:false |
-i , --image-name 或环境变量 UPDATE_PACKAGES_DOCKER_IMAGE_NAME |
运行命令的 Docker 镜像名称。默认为 saltzmanjoelh/swiftubuntu。 |
##symlink-dependencies
xchelper symlink-dependencies SOURCE_CODE_PATH
选项 | 描述 |
---|---|
symlink-dependencies ,或环境变量 SYMLINK_DEPENDENCIES |
创建指向您的依赖项的符号链接,它将更新您的 Xcode 项目以使用这些符号链接,而不是带有版本号后缀的目录。 |
##create-archive
xchelper create-archive ARCHIVE_PATH FILES [OPTIONS]
选项 | 描述 |
---|---|
create-archive ,或环境变量 CREATE_ARCHIVE |
使用 tar 归档文件。ARCHIVE_PATH 是要创建的归档文件的完整路径和文件名。FILES 是您要归档的文件的完整路径的空格分隔列表。 |
-f , --flat-list , 或环境变量 CREATE_ARCHIVE_FLAT_LIST |
将所有文件放在一个扁平列表中,而不是维护目录结构。默认为:true。 |
##upload-archive
xchelper upload-archive SOURCE_CODE_PATH [OPTIONS]
upload-archive
命令将通过 swift package update
下载对您的依赖项的任何更新。SOURCE_CODE_PATH
是您的包的根目录,将在其中调用 swift package update
。
选项 | 描述 |
---|---|
-l , ----linux-packages 或环境变量 UPDATE_PACKAGES_LINUX_PACKAGES |
某些包具有 Linux 特定的依赖项。使用此选项更新包的 Linux 版本。Linux 包可能与 macOS 依赖项不兼容。在更新之前会执行 swift build --clean 。默认为:false |
-i , --image-name 或环境变量 UPDATE_PACKAGES_DOCKER_IMAGE_NAME |
运行命令的 Docker 镜像名称。默认为 saltzmanjoelh/swiftubuntu。 |
#示例
有一个 示例项目 可用于查看完整的配置。
##保持 Xcode 中 “Dependencies” 组引用正确的路径 当您需要更新您的包依赖项时,您必须调用 swift package update
。这会破坏您的项目,现在您必须再次调用 swift package generate-xcodeproj
或更新项目中的引用。使用 update-packages
和 symlink-dependencies
来帮助完成此过程。
这是一个更新您的包、创建/更新指向这些包的符号链接以及使 Xcode 更新以使用这些符号链接的示例。
请注意 xcrun
的使用。如果您收到任何类似 cannot load underlying module for 'Darwin'
或 did you forget to set an SDK using -sdk or SDKROOT?
的错误,则可以使用它。
##将您的二进制文件打包成 tar 压缩包并上传到 AWS S3 存储桶。
使用 create-archive
和 upload-archive
来帮助将您的文件上传到 S3 存储桶。如果您使用 CodeDeploy 或类似工具来监控 S3 存储桶以进行持续集成,您可能会使用此功能。