打包时记录编译开始时间并在App中获取

 

 记录编译开始时间(自己的脚本一定要放在最前面,否则项目不会使用修改完成后的内容)

 

# Type a script or drag a script file from your workspace to insert its path.
app_build_time_path=${SRCROOT}/app_build_time.txt
info_plist_path=${SRCROOT}/$TARGET_NAME/Info.plist
app_build_date='APP_BUILD_DATE'
build_date=`date '+%Y-%m-%d %H:%M:%S'`

if [ -f $app_build_time_path ]
then
echo $build_date > $app_build_time_path
echo `date '+%s'` >> $app_build_time_path
fi

echo "此次构建开始时间为$build_date"

last_build_date=`/usr/libexec/PlistBuddy -c "Print :$app_build_date" ${info_plist_path}`
if [[ -n $last_build_date ]]; then
    /usr/libexec/PlistBuddy -c "Set :$app_build_date $build_date" ${info_plist_path}
    echo "上次构建开始时间为$last_build_date"
    /usr/libexec/PlistBuddy -c Save ${info_plist_path}
    echo "更新编译时间完成"
else
    /usr/libexec/PlistBuddy -c "Add :$app_build_date string $build_date" ${info_plist_path}
    /usr/libexec/PlistBuddy -c Save ${info_plist_path}
    echo "设置编译时间完成"
fi
app_build_time.txt 这是我配置的一个文件,不需要可以忽略掉

 

变量赋值,不能有空格,否则报错

字符串拼接不写+号

echo $text > $filepath  将字符串输出到文件 

常用的宏和常量

 

参考内容:

Xcode中的常量和环境变量

 

$CURRENT_PROJECT_VERSION 当前工程版本号
$SDK_NAME eg: iphonesimulator5.0
$PLATFORM_NAME eg:iphonesimulator
$EXECUTABLE_NAME eg:libUtilLib.a 可执行文件名
$IPHONEOS_DEPLOYMENT_TARGET eg:5.0
param description
$TARGET_NAME 目标 target 名称
$CONFIGURATION 当前编译配置文件名称。eg:Debug、Release
$ACTION 当前编译处于哪个阶段。eg: build、compile
$NS_BLOCK_ASSERTIONS 控制断言开、关(OC)

$PROJECT_DIR 工程文件所在路径
$SRCROOT 源代码所在路径,一般情况下和 $PROJECT_DIR 相同
$BUILT_PRODUCTS_DIR build 成功后的,最终产品路径。包括 .app。可以在 Build Settings 下的 Build Products Path 中进行设置
$BUILD_DIR build 文件夹。$BUILT_PRODUCTS_DIR 是该文件夹的子文件夹
$BUILD_ROOT 一般和 $BUILD_DIR 相同(至于什么时候不同还没有详细探究)
$SYMROOT 测设结果和上面相同
* @executable_path
这个变量表示可执行程序所在的目录. 比如 /path/QQ.app/Contents/MacOS/。使用第三方动态库时需要设置这个值

@loader_path
这个变量表示每一个被加载的 binary (包括App, dylib, framework,plugin等) 所在的目录.
在一个程序中, 对于每一个模块, @loader_path 会解析成不用的路径, 而 @executable_path 总是被解析为同一个路径(可执行程序所在目录). 比如一个会被多个程序调用的 plugin, 位于 /path/Flash Player.plugin/Contents/MacOS/Flash Player, 依赖 /path/Flash Player.plugin/Contents/Frameworks/XPSSO.dylib. 那么 XPSSO.dylib 的 INSTALL_PATH 可以设置为 @loader_path/../Frameworks, 这样设置的话, 不论 Flash Player.plugin 目录放到什么位置, XPSSO.dylib 都能正确的被加载.
————————————————
版权声明:本文为CSDN博主「kaiyuanheshang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kaiyuanheshang/article/details/50284345

 

posted @ 2021-04-01 16:58  雨筱逸悠  阅读(244)  评论(0编辑  收藏  举报