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 { }
}
相关推荐
黑科技iOS上架2 小时前
unity3D 应用AppStore4.3被拒怎么自查
ios·审核·unity3d混淆
用户38034165882973 小时前
FFmpeg 在 iOS 上的裁剪、集成与包体控制
ios·音视频开发
黑科技iOS上架4 小时前
Cocos应用App Store4.3被拒怎么自查
macos·ios·objective-c·cocoa·审核·ios混淆·cocos混淆
00后程序员张7 小时前
怎么用 Egret(白鹭引擎)打包 iOS 应用并上架 App Store?
android·ios·小程序·https·uni-app·iphone·webview
风雨_7 小时前
show-me + grill-me 结合使用总结
ios
Rudon滨海渔村1 天前
iPhone上使用“库乐队”设置mp3铃声
ios·iphone·mp3·m4r·铃声
秋雨梧桐叶落莳1 天前
【iOS】GCD内容整理
macos·ios·cocoa
Mr -老鬼1 天前
EasyClick iOS USB版:USB HID功能详解与实战指南
ios·easyclick·易点云测·ios自动化
思盛iOS签名上架2 天前
ipa企业签名闪退是什么原因?
游戏·ios·testfight