美文网首页
使用脚本.sh加速 App 开发

使用脚本.sh加速 App 开发

作者: BlessNeo | 来源:发表于2017-08-08 17:32 被阅读38次

    1.iOS 在系统设置中展示 App 版本,Build 等信息

    某日闲的无聊,玩儿手机无意间发现一件在 iOS 系统设置中有趣的事儿。别人家的 App 都是这个样子的



    简书是这个样子



    好奇下面这些信息是怎么来的。我又看了其他的 App,发现有的更是强大。

    Google 了一下,原来是 Setting.bundle 的作用。下面就介绍一下如何简单的使用 Setting.bundle 实现简书的效果。

    1.在项目中添加 Setting.bundle 文件

    New File... 的时候注意下添加的路径,下面编写脚本需要用到,建议直接根目录即可。

    2.编辑 Root.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    <key>PreferenceSpecifiers</key>
    <array>
    <dict>
     <key>Title</key>
     <string>版本信息</string>
     <key>Type</key>
     <string>PSGroupSpecifier</string>
    </dict>
    <dict>
     <key>DefaultValue</key>
     <string>-</string>
     <key>Key</key>
     <string>version_preference</string>
     <key>Title</key>
     <string>Version</string>
     <key>Type</key>
     <string>PSTitleValueSpecifier</string>
    </dict>
    <dict>
     <key>DefaultValue</key>
     <string>-</string>
     <key>Key</key>
     <string>build_preference</string>
     <key>Title</key>
     <string>Build</string>
     <key>Type</key>
     <string>PSTitleValueSpecifier</string>
    </dict>
    </array>
    <key>StringsTable</key>
    <string>Root</string>
    </dict>
    </plist>
    

    3.修改 Version 和 Build 的值

    有两种方法,一种是通过代码的方法。

    AppDelegare.m didFinishLaunchingWithOptions方法或者需要的地方添加以下代码

        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"];
    

    推荐使用脚本自动设置 Version 和 Build 的值。

    4.编辑脚本

    #获取Bundle Version
    version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}")
    /usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:1:DefaultValue ${version}" "${PROJECT_DIR}/${PROJECT_NAME}/Settings.bundle/Root.plist"
    #获取Build
    Build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
    /usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:2:DefaultValue ${Build}" "${PROJECT_DIR}/${PROJECT_NAME}/Settings.bundle/Root.plist"
    

    5.配置脚本

    如下图所示添加一个 Run Script

    复制脚本内容到如下位置

    运行工程,然后去 iOS 系统设置查看变化(可能会出现延迟,可以尝试杀掉系统设置重新查看)。

    参考:

    1. iOS 在系统设置中展示Git Commit, App版本等信息
    2. Integrate Settings.bundle and show iOS version with Git commit in 5 mins
    3. 官方文档

    相关文章

      网友评论

          本文标题:使用脚本.sh加速 App 开发

          本文链接:https://www.haomeiwen.com/subject/wogtrxtx.html