• 整合Settings.bundle显示版本信息


    本文转载至 http://www.cocoachina.com/ios/20141103/10112.html

    iOS开发XCode版本管理Debug开发Tips

     

    现在你有一个App,你同事的iPad用着用着出了点故障,Boss也说他的iPhone出了点问题,然后…你还有一些测试设备要跑……

    然后呢,这些设备都扔到了你这个苦逼程序员的手中善后,不过现在有个问题…你需要确认这些不同的设备都装了哪个该死的版本…是昨天弄个的TestFlight版本呢…还是上个星期在AppStore上发布的版本…或者是为了某些奇奇奇怪的需求而特制的版本…(好痛苦啊)

    这样,我们需要确认一下这个App属于哪一个发布版,建造版还是Git上的提交版本,不过不需要你在App里再去构建新代码来显示这些东西,我们就可以在应用的设置页面看到这些信息。

    1.下载这一个工程然后把里面的Settings.bundle拖到你的App工程里面去

    sss.gif

    2.把如下代码加入到AppDelegate.m文件里

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
    [[NSUserDefaults standardUserDefaults] setObject:version
    forKey:@"version_preference"];
      
    NSString *build = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
    [[NSUserDefaults standardUserDefaults] setObject:build
    forKey:@"build_preference"];
      
    NSString *githash = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"GITHash"];
    [[NSUserDefaults standardUserDefaults] setObject:githash
    forKey:@"githash_preference"];
    1
    2
    3
    4
    5
    6
    7
    8
    let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString")
    NSUserDefaults.standardUserDefaults().setObject(version, forKey: "version_preference")
      
    let build = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion")
    NSUserDefaults.standardUserDefaults().setObject(build, forKey: "build_preference")
      
    let githash = NSBundle.mainBundle().objectForInfoDictionaryKey("GITHash")
    NSUserDefaults.standardUserDefaults().setObject(githash, forKey: "githash_preference")

    3.把"Xcode-git-hash.sh"拖到工程文件的根目录下

    1-sIQynQtdqGJQEG-15re5dA.gif

    这个脚本的初始版本可以在这里下载。

    4.在构建项目的时候添加新的运行脚本

    1-EmNRU2ZN9mWKSPavV2Qb_Q.png

    1
    "${SRCROOT}/xcode-git-hash.sh"

    5.然后在目标信息的plist中添加GITHash

    1-ox7dINu7DaTjRtLUbhWVPw.png

    6.接着构建并运行你的项目,然后在应用的设置中查看版本信息

    1-joIIaI2p0bHxAzASVZbaQg.png

    好了,其实很简单,也花不了多少时间。

    GitHub上的示例程序在这里

    总结

    在App的UI设计中,设置页面时一个非常值得利用的地方,你可以在这里添加触发器,输入框或者让用户配置的参数选项。

  • 相关阅读:
    04-Go语言之运算符
    02-Go语言之变量和常量
    idea 无法加载识别本地类
    阿里云OSS实践篇
    jemeter 压测入门篇(附带工具)
    SpringBoot 中的那些“开关”
    java8 新特性之4大函数式接口
    java8 新特性之optional
    VSCode vue开发前配置
    前端架构演进及主流UI
  • 原文地址:https://www.cnblogs.com/Camier-myNiuer/p/4116059.html
Copyright © 2020-2023  润新知