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 { }
}
相关推荐
AIsoft_86882 小时前
iPhone录音重点标记:会议录音与重点内容同步保存功能实测
ios·iphone
00后程序员张2 小时前
使用Instruments工具深入分析iOS应用性能与启动时间优化
android·macos·ios·小程序·uni-app·cocoa·iphone
90后的晨仔5 小时前
Xcode 26.6编译 AFNetworking 报错全解:5 种方案从应急到根治
ios
初级代码游戏18 小时前
iOS开发 Swift 速记1:变量和基本数据类型
开发语言·ios·swift
for_ever_love__20 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c
2501_915921431 天前
SwiftUI开发框架入门指南:从基础到实战
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_916007471 天前
Python实现HTTPS爬虫的完整指南:使用requests、BeautifulSoup、Selenium和Scrapy
爬虫·python·ios·小程序·https·uni-app·iphone
LDyun_1 天前
云手机低延迟怎么实现的?为什么云手机能够 7×24 小时在线?
ios·智能手机·安卓·玩游戏
for_ever_love__1 天前
iOS: 网络请求第三方库的使用: AFNetworking
网络·学习·ios·objective-c·cocoa·xcode
李白你好1 天前
强大的 Frida 重打包工具,用于 iOS 和 Android。轻松修改 Frida 特征
android·ios