返回

用Run Script 快速打包测试包并上传至 FTP 的 Xcode 黑科技

IOS

各位 Xcode 战友们,大家好!今天,我带来一个高效便捷的小窍门,让大家在测试阶段快速打测试包,并上传到 FTP,免去繁琐的等待时间,提高开发效率。

Xcode 打包速度优化

我们都知道,使用 Xcode 自带的打包方式,等待时间那是相当漫长,分分钟能把人急死。为了解决这个问题,我们可以使用 Xcode 的 Run Script 功能。

Run Script 顾名思义,就是在构建项目的时候,运行指定的脚本。我们可以通过编写一个脚本,来自动完成打包和上传的过程。

脚本编写

首先,我们创建一个新的 Run Script。在 Xcode 的左上角菜单栏中,选择 "Product" -> "Scheme" -> "Edit Scheme",然后在 "Build" 选项卡中,点击 "+" 按钮添加一个新的 Run Script。

在脚本编辑器中,我们可以输入以下脚本:

#!/bin/sh

# Xcode 项目路径
PROJECT_DIR="${SRCROOT}"

# 打包输出路径
OUTPUT_DIR="${PROJECT_DIR}/build"

# 测试包名称
APP_NAME="MyApp"

# FTP 服务器信息
FTP_HOST="ftp.example.com"
FTP_USER="username"
FTP_PASS="password"
FTP_PATH="/path/to/upload"

# 创建输出目录
mkdir -p "${OUTPUT_DIR}"

# 打包测试包
xcodebuild -project "${PROJECT_DIR}/MyApp.xcodeproj" -scheme MyApp -configuration Debug -archivePath "${OUTPUT_DIR}/${APP_NAME}.xcarchive"

# 导出测试包
xcodebuild -exportArchive -archivePath "${OUTPUT_DIR}/${APP_NAME}.xcarchive" -exportPath "${OUTPUT_DIR}/${APP_NAME}.ipa" -exportOptionsPlist "${PROJECT_DIR}/ExportOptions.plist"

# 上传测试包到 FTP
lftp -u "${FTP_USER}",${FTP_PASS} sftp://${FTP_HOST} << EOF
lcd "${OUTPUT_DIR}"
cd "${FTP_PATH}"
put "${APP_NAME}.ipa"
bye
EOF

注意:

  • ${SRCROOT} 替换为你自己的 Xcode 项目路径。
  • MyApp 替换为你的测试包名称。
  • 将 FTP 服务器信息替换为你自己的 FTP 设置。
  • 确保已安装 lftp 命令行工具。

配置 Run Script

编写好脚本后,我们需要将其配置为在构建时运行。

  1. 在 Run Script 的 "Input Files" 部分,添加你项目中的 ExportOptions.plist 文件。
  2. 在 "Output Files" 部分,添加打包后的测试包路径,例如:"${OUTPUT_DIR}/${APP_NAME}.ipa"
  3. 在 "Execution Options" 部分,勾选 "Run script only when installing target" 选项。

使用

现在,当你构建项目时,Run Script 就会自动运行,并完成打包和上传的过程。你可以在 "Console" 输出中查看详细的执行日志。

实际应用案例

  • 快速分发测试包: 只需点击一下构建按钮,就可以快速将测试包分发给内部非 iOS 开发人员进行测试。
  • 自动化构建流程: 将 Run Script 集成到自动化构建流程中,实现无人值守的打包和上传。
  • 提升团队协作效率: 通过快速上传测试包,可以加快团队成员之间的反馈和协作。

总结

使用 Xcode 的 Run Script 功能,我们可以大幅提升打包测试包的速度,并简化上传到 FTP 的过程。这不仅可以提高开发效率,还可以提升团队协作的顺畅度。希望这个小技巧能够让大家的工作变得更加轻松高效!