上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

R.swift & SwiftGen 资源使用指南

guduadmin271月前

R.swift 和 SwiftGen 资源转换使用指南

R.swift (原始代码会打包到项目?)

  • Pod

    platform :ios, '12.0'
    target 'LBtest' do
      # Comment the next line if you don't want to use dynamic frameworks
      use_frameworks!
      pod 'R.swift'
    #  pod 'SwiftGen', '~> 6.0'
    end
    
  • pod install

  • 设置 执行脚本 TARGETS–>Build Phases–>New Run Script Phase

  • 添加如下 code

    if [ -f "${PODS_ROOT}/R.swift/rswift" ]; then
        "${PODS_ROOT}/R.swift/rswift" generate "${SRCROOT}/R.generated.swift"
    else
        echo "warning: R.swift not found, run 'pod install' to install R.swift."
    
  • 拖动当前 Run Script Phase 到 Check pods Manifest.lock 和 Compile Sources 之间

    R.swift & SwiftGen 资源使用指南,在这里插入图片描述,第1张

  • 在Xcode 中 新建一个 R.generated.swift 文件 位置在 项目根目录 即 当前项目文件夹下

    R.swift & SwiftGen 资源使用指南,在这里插入图片描述,第2张

  • 使用事例

    Localizable.string

    "name" = "姓名";
    "age" = "18";
    
    let name = R.string.localizable.name()
    debugPrint(name)    
    let age = R.string.localizable.age()
    debugPrint(age)
    

    SwiftGen (原始代码不会打包到项目)

    • Pod

      platform :ios, '12.0'
      target 'LBtest' do
        # Comment the next line if you don't want to use dynamic frameworks
        use_frameworks!
        #pod 'R.swift'
        pod 'SwiftGen', '~> 6.0'
      end
      
    • pod install

    • 设置 执行脚本 TARGETS–>Build Phases–>New Run Script Phase

    • 添加如下 code

       [[ -f "${PODS_ROOT}/SwiftGen/bin/swiftgen" ]]; then
        ${PODS_ROOT}/SwiftGen/bin/swiftgen config run
      else "warning: SwiftGen is not installed. Run 'pod install --repo-update' to install it."
      fi
      
    • 拖动当前 Run Script Phase 到 Check pods Manifest.lock 和 Compile Sources 之间

      R.swift & SwiftGen 资源使用指南,在这里插入图片描述,第3张

    • 在项目根目录下创建 swiftgen.ym 文件

      input_dir: LBtest
      output_dir: .
      strings:
        inputs: en.lproj
        filter: .+\.strings$
        outputs:
          - templateName: structured-swift5
            output: Localizable.swift
            params:
              enumName: bslocalizable
      #xcassets:
      #  - inputs: Logos.xcassets
      #    outputs:
      #      - templateName: swift5
      #        output: Logos-Constants.swift
      #        params:
      #          enumName: Logos
      #  - inputs:
      #      - Colors.xcassets
      #      - Images.xcassets
      #    outputs:
      #      - templatePath: Resources/my-assets-custom-template.stencil
      #        output: Assets-Constants.swift
      
    • 将Localizable.swift 添加到 Xcode 项目

      R.swift & SwiftGen 资源使用指南,在这里插入图片描述,第4张

    • 使用事例:

      Localizable.string

      "name" = "姓名";
      "age" = "18";
      
      let name = bslocalizable.name
      debugPrint(name)
      let age = bslocalizable.age
      debugPrint(age)
      
    • Homebrew

      $ brew install swiftgen
      

      在项目根目录下创建 swiftgen.ym 文件

      input_dir: LBtest
      output_dir: .
      strings:
        inputs: en.lproj
        filter: .+\.strings$
        outputs:
          - templateName: structured-swift5
            output: Localizable.swift
            params:
              enumName: bslocalizable
      #xcassets:
      #  - inputs: Logos.xcassets
      #    outputs:
      #      - templateName: swift5
      #        output: Logos-Constants.swift
      #        params:
      #          enumName: Logos
      #  - inputs:
      #      - Colors.xcassets
      #      - Images.xcassets
      #    outputs:
      #      - templatePath: Resources/my-assets-custom-template.stencil
      #        output: Assets-Constants.swift
      
    • 进入当前根文件夹下 打开终端执行run

      swiftgen config run 
      

网友评论

搜索
最新文章
热门文章
热门标签
 
 梦见战争和很多人一起逃亡  梦见蛇咬人把蛇打死了  孕妇梦见一堆蛇是什么意思