使用场景: 自动化打包时使用脚本生成特定内容的文件并在代码内读取上报,用于区分具体的打包版本等。应该也有其他方案,这里只是我的一个想法,项目上测试也算是比较符合预期。仅供参考。
以打包时生成时间戳为例:
1,先编写一个脚本代码,命名为 timestamp.sh
bash
#!/bin/bash
TIMESTAMP=$(date +%s)
OUTPUT_FILE="${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/timestamp.txt"
echo "$TIMESTAMP" > "$OUTPUT_FILE"
echo "Timestamp written to: $OUTPUT_FILE"
2,将其配置在项目内 依次选择:Target - Build Phases - '+' - New Run Script Phase,并配置下述代码:
bash
#将 ***filePath***替换为 timestamp.sh文件的实际路径
bash "${SRCROOT}/***filePath***/timestamp.sh"
3,在代码内读取文件,获取时间戳
swift
if let fileURL = Bundle.main.url(forResource: "timestamp", withExtension: "txt") {
do {
let timestamp = try String(contentsOf: fileURL, encoding: .utf8).trimmingCharacters(in: .whitespacesAndNewlines)
// 在这里做一些业务相关的事项
print("timestamp = \(timestamp)")
} catch { }
}