美文网首页
动态配置各定制版本启动图

动态配置各定制版本启动图

作者: 亡灵诅咒 | 来源:发表于2019-11-22 08:43 被阅读0次

    应用场景

    • 公司存在很多定制版本,但是启动图有个不统一,但是又不想通过增加Launch Screen File文件来配置各个启动图

    目标

    • 使用一份LaunchScreen.stroyboard来配置多个启动图

    实现

    • 在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}"
      #根据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对应的文件

    相关文章

      网友评论

          本文标题:动态配置各定制版本启动图

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