在iOS应用程序中构建信息(构建日期/时间应用程序)

Jos*_*her 9 iphone cocoa-touch build-process objective-c ios

我正在寻找一种在iOS应用程序的构建过程中动态添加有关应用程序的信息的方法.

在测试期间,很高兴知道我在我的设备上安装的应用程序何时构建,并且可能是谁建立它也是一件好事.

我正在设想settings.app中的一个部分,它将提供用于调试目的的基本构建信息.我不希望在每次构建之前手动更新构建信息文件 - 应该动态生成数据.

sha*_*sha 13

您也可以使用标准宏__DATE__,这将导致像"Jun 25 1980"这样的字符串当然具有正确的当前构建日期.

  • 为了将__DATE__宏转换为NSString,请检查以下问题:http://stackoverflow.com/questions/2862469/iphone-sdk-objective-c-date-compile-date-cant-be-converted-to-an-的NSDate (3认同)
  • 您还可以使用`__TIME__`宏将时间添加到日期. (2认同)

Lil*_*ard 7

您可以在Xcode中编写一个shell脚本构建阶段,该阶段在构建过程结束时运行.在此阶段,您可以使用该defaults命令将数据写入任意文件.我已经使用这种技术写入Info.plist文件,但是你可以写入你想要的任何文件[1].

这是一个将当前git版本写入Info.plist的示例脚本:

infoplist="$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"
gitversion="$(cd "$SRCROOT" && git describe --always --dirty 2>/dev/null)"
if [[ -n "$gitversion" ]]; then
    defaults write "${infoplist%.plist}" GitVersion "$gitversion"
fi
Run Code Online (Sandbox Code Playgroud)

您应该能够调整它以指向您想要的文件(例如您的设置包)并写下您想要的信息.

[1]如果你写Info.plist要小心,Xcode有错误,可以防止它在构建过程中实现Info.plist更改,这可能会破坏设备构建时的配置.