應(yīng)用場景
- 公司存在很多定制版本赁豆,但是啟動圖有個不統(tǒng)一谨湘,但是又不想通過增加Launch Screen File文件來配置各個啟動圖
目標(biāo)
- 使用一份LaunchScreen.stroyboard來配置多個啟動圖
實(shí)現(xiàn)
-
在storyboard中增加一個UIImageView,Label命名為XXX
1574382349860.jpg -
添加Run Script Phases,并重命名.注意需要在Copy Bundle Resources之前
1574382568671.jpg
1574382687063.jpg shell腳本
1574382845264.jpg
# Type a script or drag a script file from your workspace to insert its path.
# 獲取APP 的BundleID
appID="${PRODUCT_BUNDLE_IDENTIFIER}"
#根據(jù)BundleID 去 項(xiàng)目中尋找定制版本對用的type
appType=$(/usr/libexec/PlistBuddy -c "Print :${appID}" "${PROJECT_DIR}/XXXX.plist")
# 根據(jù)type 去項(xiàng)目路勁中獲取type對應(yīng)的配置文件蔼囊,從配置文件中獲取key對應(yīng)的值
# 獲取配置的文案
#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")
# 設(shè)置Launch Screen Stroyboard中命名為'LanchTitleView'的userLabel的text的值
# XXXX表示Stroyboard的路勁
#sed -i bak -e "/userLabel=\"LanchTitleView\"/s/text=\"[^\"]*\"/text=\"$versionTitle\"/" $PROJECT_DIR/XXX/LaunchScreen.storyboard
# 設(shè)置Launch Screen Stroyboard中命名為'LaunchImageView'的userLabel的image的值
sed -i bak -e "/userLabel=\"LaunchImageView\"/s/image=\"[^\"]*\"/image=\"$versionImage\"/" $PROJECT_DIR/XXX/LaunchScreen.storyboard
總結(jié)
在打包各個定制版本時客税,只需要修改對應(yīng)的BundleID即可女轿,無需創(chuàng)建多個stroyboard和選擇Launch Screen File對應(yīng)的文件