使用脚本.sh加速 App 开发

2017-08-08  本文已影响38人  BlessNeo

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. 官方文档
上一篇 下一篇

猜你喜欢

热点阅读