应用场景
- 公司存在很多定制版本,但是启动图有个不统一,但是又不想通过增加Launch Screen File文件来配置各个启动图
目标
- 使用一份LaunchScreen.stroyboard来配置多个启动图
实现
-
在storyboard中增加一个UIImageView,Label命名为XXX
1574382349860.jpg -
添加Run Script Phases,并重命名.注意需要在Copy Bundle Resources之前
1574382568671.jpg
1574382687063.jpg -
shell脚本
# Type a script or drag a script file from your workspace to insert its path.
# 获取APP 的BundleID
appID="${PRODUCT_BUNDLE_IDENTIFIER}"
#根据BundleID 去 项目中寻找定制版本对用的type
appType=$(/usr/libexec/PlistBuddy -c "Print :${appID}" "${PROJECT_DIR}/XXXX.plist")
# 根据type 去项目路劲中获取type对应的配置文件,从配置文件中获取key对应的值
# 获取配置的文案
#versionTitle=$(/usr/libexec/PlistBuddy -c "Print :key" "${PROJECT_DIR}/XXXStore/Config/${appType}_Config.plist")
# 获取配置的启动图
versionImage=$(/usr/libexec/PlistBuddy -c "Print :key1" "${PROJECT_DIR}/XXXStore/Config/${appType}_Config.plist")
# 设置Launch Screen Stroyboard中命名为'LanchTitleView'的userLabel的text的值
# XXXX表示Stroyboard的路劲
#sed -i bak -e "/userLabel=\"LanchTitleView\"/s/text=\"[^\"]*\"/text=\"$versionTitle\"/" $PROJECT_DIR/XXX/LaunchScreen.storyboard
# 设置Launch Screen Stroyboard中命名为'LaunchImageView'的userLabel的image的值
sed -i bak -e "/userLabel=\"LaunchImageView\"/s/image=\"[^\"]*\"/image=\"$versionImage\"/" $PROJECT_DIR/XXX/LaunchScreen.storyboard
总结
在打包各个定制版本时,只需要修改对应的BundleID即可,无需创建多个stroyboard和选择Launch Screen File对应的文件
网友评论