R.swift SwiftGen 资源使用指南

news2024/9/27 17:24:40

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 
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1396813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚幻UE 特效-Niagara特效实战-雨天

回顾Niagara特效基础知识:虚幻UE 特效-Niagara特效初识 其他两篇实战:虚幻UE 特效-Niagara特效实战-火焰、烛火、虚幻UE 特效-Niagara特效实战-烟雾、喷泉 本篇笔记我们再来实战雨天,雨天主要用到了特效中的事件。 文章目录 一、雨天1、创建雨…

智汇云舟创始人兼总裁周舟:视频孪生赋能智慧城市多元场景建设

1月18日,由知名科技媒体和产业智库泰伯网主办的WIF2023创新先行者论坛暨企业家会员年会于北京成功举办。共有百余位科技公司创始人、管理者、投资人齐聚,研判产业经济趋势,寻找新形势下企业未来发展的新方向、新机会。智汇云舟创始人兼总裁周…

毅速ESU:金属3D打印技术助力模具开发降本增效

模具是工业之母,在高效批产方面极具优势,但随着企业对模具精度、结构复杂性、生产周期和成本的要求日益严格,传统模具制造已经不能完全满足市场需求。在众多的模具加工工艺新技术中,3D打印技术把增材制造理念引入模具行业&#xf…

精品量化公式——“筹码动态”,筹码动态改进版,增加了三个买点信号标识

不多说,直接上效果如图: ► 日线表现 代码评估 技术指标代码评估: 散筹估算: 使用EMA(指数移动平均)方法计算(WINNER(C*1.1)-WINNER(C*0.9))*70的3日均线,用黄色粗线表示。这是用于估算市场中散户投资者的…

在Linux中安装和配置Node.js与Express.js创建HTTP服务器

在Linux环境中,安装和配置Node.js与Express.js来创建一个HTTP服务器需要一系列的步骤。下面是一个详细的指南,帮助你在Linux上设置这个环境。 步骤1:安装Node.js 首先,你需要确保你的Linux系统已经安装了Node.js。你可以通过以下…

Vulnhub靶机:driftingblues 7

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues7(10.0.2.23) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…

限时免费参加游戏开发训练营!!!

限时免费 本周有效 游戏行业作为当下最火热的行业之一,受到了很多人的喜爱,也有很多同学想要进入游戏开发行业。 基于大家的需求,我们为大家提供了不同类型的游戏开发训练营,让你既能通过这些游戏Demo熟练开发技能,也…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-热门帖子推荐显示实现

锋哥原创的SpringbootLayui python222网站实战: python222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火…

【android】 android 里写jni

目录 (1) 环境准备 (2) 关联c文件到gradle文件 (3) 生成了 (4) 书写 (5) 使用 (6)业务调用 参考文档 (1) 环境准备 ndk, cmake (2) 关联c文件到gr…

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)

难度参考 难度:简单 分类:熟悉OJ与IDE的操作 难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。 题目 A B1. A B - AcWing题库财务管理1004:财…

【SpringBoot】Bean 是什么?

感兴趣的话,可以看我另外一篇关于 Bean 的文章:【Java基础】Spring 中 Bean 的理解与使用 一、Bean 定义 Bean 作为 Spring 框架面试中不可或缺的概念,其本质上是指代任何被 Spring 加载生成出来的对象。(本质上区别于 Java Bea…

Docker 部署考核

Docker安装 安装必要的系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 添加docker-ce安装源: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 配置阿里云Docker Yum源: yum-config-manager --ad…

计算机网络-ACL访问控制列表

上一篇介绍NAT时候就看到了ACL这个东西了,这个是什么意思?有什么作用呢? 一、ACL访问控制列表 访问控制列表 (ACL, Access Control List)是由一系列permit或deny语句组成的、有序规则的列表。ACL是一个匹配工具,能够对报文进行匹配…

Linux粘滞位的理解,什么是粘滞位?

文章目录 前言如何理解?粘滞位的操作最后总结一下 前言 粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root…

2023年全球软件质量效能大会(QECon深圳站):核心内容与学习收获(附大会核心PPT下载)

随着科技的快速发展,软件行业面临着越来越多的挑战和机遇。为了更好地应对这些挑战,不断提升软件的质量和效能,大会将汇聚全球的软件开发者、架构师和项目经理,共同探讨和分享关于软件质量保证、测试、性能优化、用户体验设计、人…

技术硬实力,阿里巴巴为什么要开源Spring Cloud Alibaba?

Spring Cloud Alibaba是阿里巴巴开源的一款高性能的微服务RPC框架,关于Spring Cloud Alibaba的详细介绍我这里就不啰嗦了,大家可以参考官网及相关源码,我这里只是想聊的是“阿里巴巴为什么要开源Spring Cloud Alibaba”,只要追根朔…

MiniTab的相关性统计

相关概述 相关可以度量两个变量之间关联的强度和方向。可以在以下两种相关方法之间进行选择:Pearson 积矩相关和 Spearman 秩次相关。Pearson 相关(又称为 r)是最常见的方法,它度量两个连续变量之间的线性关系。 如果变量之间的…

Linux基础命令[1]-ls

文章目录 1. ls 命令说明2. ls 常用命令参数2.1 -l(展示详细信息)2.2 -a/-A(展示隐藏文件)2.3 -t/-c/-r(展示信息排序)2.4 -h(展示文件大小)2.5 -R(递归展示)…

近场与远场

一、近场与远场的区别 骚扰通过空间传输实质上是骚扰源的电磁能量以场的形式向四周空间传播。 场可分为近场和远场。 近场又称感应场。近场的性质与骚扰源的性质密切相关。 1、如果骚扰源是高电压,小电流的源,则近场只要是电场。如下图所示偶极子天线模…