R.swift & SwiftGen 资源使用指南

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 之间
    在这里插入图片描述

  • 在Xcode 中 新建一个 R.generated.swift 文件 位置在 项目根目录 即 当前项目文件夹下
    在这里插入图片描述

  • 使用事例

    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 之间
    在这里插入图片描述

  • 在项目根目录下创建 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 项目
    在这里插入图片描述

  • 使用事例:

    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 
    

相关推荐

  1. Docker资源管理和分配指南

    2024-01-20 08:52:02       33 阅读
  2. 【机器学习】FlyFlowerSong【人工智能】资源指南

    2024-01-20 08:52:02       24 阅读
  3. 查看服务器资源使用情况

    2024-01-20 08:52:02       54 阅读
  4. FFMPEG指令处理音频使用指南

    2024-01-20 08:52:02       69 阅读
  5. 探索Kotlin:最佳学习实践和资源指南

    2024-01-20 08:52:02       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-20 08:52:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-20 08:52:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-20 08:52:02       87 阅读
  4. Python语言-面向对象

    2024-01-20 08:52:02       96 阅读

热门阅读

  1. MySQL 深度分页

    2024-01-20 08:52:02       34 阅读
  2. 学习搭建Vuex环境总结

    2024-01-20 08:52:02       49 阅读
  3. js多种数组去重方法

    2024-01-20 08:52:02       53 阅读
  4. vue3使用自定义组件内方法

    2024-01-20 08:52:02       52 阅读
  5. MATLAB FFT ILA

    2024-01-20 08:52:02       50 阅读
  6. 二进制数据传输中的校验方法

    2024-01-20 08:52:02       55 阅读
  7. 模仿ProTable创建ProTable组件

    2024-01-20 08:52:02       49 阅读
  8. 3. Driver 源码

    2024-01-20 08:52:02       55 阅读
  9. Numpy极速入门学习

    2024-01-20 08:52:02       48 阅读