iOS - 关于如何在编译时写入文件并在代码内读取文件内容

使用场景: 自动化打包时使用脚本生成特定内容的文件并在代码内读取上报,用于区分具体的打包版本等。应该也有其他方案,这里只是我的一个想法,项目上测试也算是比较符合预期。仅供参考。

以打包时生成时间戳为例:

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 { }
}
相关推荐
唐诺1 小时前
iOS UI 开发完全指南:UIKit 与 SwiftUI
ui·ios·swiftui
MonkeyKing2 小时前
iOS 循环引用深度解析:delegate/block/NSTimer/嵌套闭包
ios
泉木2 小时前
KVO 详解 —— iOS/ObjC 完整学习指南
ios·objective-c
MonkeyKing2 小时前
iOS AutoreleasePool 深度解析:原理、Page结构与释放时机
ios
报错小能手3 小时前
Swift经典面试题汇总
开发语言·ios·swift
迷途酱3 小时前
Swift 真的被搞得乱七八糟了吗?写了几年之后说点实话
ios·swift
唐诺3 小时前
iOS UI 框架详解
ui·ios
Zender Han4 小时前
Flutter 轻量存储方案介绍、区别、对比和使用场景
android·flutter·ios
2501_916007474 小时前
XCode 15 IDE新特性:苹果集成开发环境全面升级,提升编程效率与体验
ide·vscode·macos·ios·个人开发·xcode·敏捷流程
MonkeyKing71554 小时前
iOS Tagged Pointer 原理、判断方式、适用场景与避坑指南
ios·objective-c