当前位置: 首页 > news >正文

[Swift]同一个工程管理多个Target

1.准备

先创建一个测试工程“ADemo”,右键其Target选择Duplicate,再复制一个Target为“ADemo2”。
在这里插入图片描述
再选择TARGETS下方的“+”,添加一个APP到项目中,这个命名为“BDemo”。
在这里插入图片描述

2、管理多个Target

可以对三个target分别导入不同的框架

target 'ADemo' douse_frameworks!pod 'SnapKit'
endtarget 'ADemo2' douse_frameworks!pod 'IQKeyboardManagerSwift'
endtarget 'BDemo' douse_frameworks!pod "Kingfisher"
end

在代码中使用框架时需要区分开,可以通过在Build Settings -> Preprocessor Macros定义宏来区分。

//  ViewController.swift
//  ADemo
//
//  Created by Gamin on 2023/10/10.
//import UIKit
#if ISADEMO
import SnapKit
#endif
#if ISADEMO2
import IQKeyboardManagerSwift
#endifclass ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()let iv = UIImageView()iv.backgroundColor = .redself.view.addSubview(iv)
#if ISADEMOiv.snp.makeConstraints { make inmake.leading.equalTo(15)make.top.equalTo(100)make.width.equalTo(100)make.height.equalTo(44)}// 这里调用IQKeyboardManagerSwift会报错
#endif#if ISADEMO2IQKeyboardManager.shared.enable = true// 这里调用SnapKit会报错
#endif}}

另外,还可以对不同的target设置不同的Info.plist、启动图和icon,比较简单就不赘述了。

3.应用

常见的例子,比如你开发了一款校园APP,需要提供给不同的学校,但要对icon和APP名称以及部分功能做差异化管理,这时候肯定首选像本文一样管理多个Target了。

再谈一个其它应用场景,比如我现在要开发一个SDK,创建了一个SDK工程,然后完成了开发,我要如何来调试和测试SDK呢?
根据经验,就本文ASDKDemo+BTestDemo这种方式会比较简单。在BTestDemo中先pod导入SDK的依赖库和一些测试框架(比如:Reveal-SDK),再导入开发的framework, 并对接口进行调用。开发中,我们只需要选择BTestDemo进行Run就可以了,可以断点调试,还可以打个包让测试去测。

相关文章:

[Swift]同一个工程管理多个Target

1.准备 先创建一个测试工程“ADemo”,右键其Target选择Duplicate,再复制一个Target为“ADemo2”。 再选择TARGETS下方的“”,添加一个APP到项目中,这个命名为“BDemo”。 2、管理多个Target 可以对三个target分别导入不同的框…...

DevExpress Reporting中文教程 - 如何在macOS等系统中生成导出报表文档

DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 在本文中,我们将讨论如何在.NET MA…...

1967作为子字符串出现在单词中的字符串数目

java解法,程度:简单 说明 给你一个字符串数组 patterns 和一个字符串 word ,统计 patterns 中有多少个字符串是 word 的子字符串。返回字符串数目。 子字符串 是字符串中的一个连续字符序列。 示例 1: 输入:patter…...

CocosCreator 面试题(二)JavaScript中的prototype的理解

1、原型(prototype)的作用 在JavaScript中,每个函数都有一个特殊的属性叫做"prototype",它是一个对象。 原型(prototype)在JavaScript中用于实现对象之间的继承和共享属性。当创建一个函数时&am…...

python:从Excel或者CSV中读取因变量与多个自变量,用于训练机器学习回归模型,并输出预测结果

作者:CSDN @ _养乐多_ 本文详细记录了从Excel读取用于训练机器学习模型的数据,包括独立变量和因变量数据,以供用于机器学习模型的训练。这些机器学习模型包括但不限于随机森林回归模型(RF)和支持向量机回归模型(SVM)。随后,我们将测试数据集应用于这些模型,进行预测和…...

pycharm连接gitlab

1、下载安装gitlab 下载地址:Git - Downloading Package 下载后傻瓜式安装,注意勾选配置环境变量 未配置自己配置,电脑-属性-高级系统配置-环境变量 系统变量path:添加git安装目录下bin目录 2、检验安装完成 桌面右键git-open…...

【C/C++数据结构 - 2】:稳定性与优化揭秘,揭开插入排序、希尔排序和快速排序的神秘面纱!

文章目录 排序的稳定性插入排序插入排序的优化 希尔排序快速排序 排序的稳定性 稳定排序:排序前2个相等的数在序列中的前后位置顺序和排序后它们2个的前后位置顺序相同。(比如:冒泡、插入、基数、归并) 非稳定排序:排…...

PCL点云处理之基于强度特征的SIFT关键点提取法 (二百一十五)

PCL点云处理之基于强度特征的SIFT关键点提取法 (二百一十五) 一、算法介绍二、具体实现1.代码2.效果一、算法介绍 继续SIFT关键点的提取介绍,之前已经基于高程和颜色分别提取了关键点,这里是基于强度信息,若遇到文件无法读取强度问题,请参考上一篇博文,下面是具体的实现…...

uniapp打包配置

安卓: 首先不管是什么打包都需要证书,安卓的证书一般都是公司提供或者自己去申请。然后把包名等下图框住的信息填上,点击打包即可。 ios:ios需要使用mac到苹果开发者平台去申请证书,流程可以参考下边的链接 参考链接…...

人大金仓分析型数据库最大量限制

数据库支持的最大量限制: 维度 限制 数据库大小 无限 表大小 无限 行大小 1.6 TB 域大小 1 GB 每个表的行数 281474976710656 (2^48) 每个表 / 视图的列数 1600 每个表的索引数 无限 每个索引的列数 32 每个表的表级约束 无限 表名长度 63 字节 列出的“无限”…...

centos 里面的service自启动app.jar,出现两个java进程,app是同一个端口

当使用jps -lv查看java虚拟机进程 app.jar启动后,居然出现两个启动进程,而且他们的端口都一样,同一端口,是不允许启动两个相同app的。 使用进程ps查看进程工具 #ps -aux 参数说明: a: 显示跟当前终端关联的所有进…...

【算法|双指针系列No.7】leetcodeLCR 007. 三数之和

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...

ubuntu修改IP地址

参考:ubuntu修改配置IP地址和DNS的方法总结(4种)_ubuntu设置ip地址-CSDN博客 面对ubuntu18以上的版本,主要有两种界面:图形化界面和纯命令行界面。 图形化界面配置比较简单,命令行配置稍许复杂&#xff0c…...

java springboot 通过ConfigurationProperties给第三方bean注入属性

之前我们的文章 java boot将一组yml配置信息装配在一个对象中 讲过了 通过ConfigurationProperties将配置文件中的内容默认装配进属性类 但 这建立在 bean是自己定义的 如果 这是个第三方的类呢? 就比如 我们在 application 中写了一套数据源的加载规则 但需要用第…...

windows系统安装openssl并且转换证书格式

概述 碎碎念,如果你有MAC电脑,就别折腾了,直接用MAC电脑吧,不用安装直接用openssl 本文主要讲到了openssl的基本使用方法,开发环境为windows,开发工具为VS2019.本文主要是说明openssl如何使用,不介绍任何理…...

【GO】基础速成

简单介绍一下go好处 编译语言,可以提前报错同时又有python的一些优点,自带多线程 开始学习 学习网站:学习网站 值 包含:字符串、整型、浮点型、布尔型等等 字符串可以 进行拼接。 需要注意的是布尔型在go里面不自动转化为in…...

五子棋(C语言实现)

目录 构思 1、主程序 2、初始化 3、游戏菜单 4、打印棋盘 6、玩家下棋 7、判断输赢 8、功能整合 人机下棋 完整版: game.h game.c text.c 测试功能代码 构思 五子棋不必多介绍了,大家小时候都玩过哈。 我们要通过程序实现这个小游戏&…...

thymeleaf,bootstrap-fileinput 多文件上传

组件遍历上传 一、前端 <!DOCTYPE html> <html lang"zh" xmlns:th"http://www.thymeleaf.org" > <head><th:block th:include"include :: header(修改固定资产信息)" /><th:block th:include"include :: date…...

爬虫 | 基础模块了解

文章目录 &#x1f4da;http协议&#x1f4da;requests模块&#x1f4da;re模块&#x1f407; re.I 或 re.IGNORECASE&#x1f407;re.M或 re.MULTILINE&#x1f407;re.S 或 re.DOTALL&#x1f407; re.A 或 re.ASCII&#x1f407; re.X 或 re.VERBOSE&#x1f407;特殊字符类…...

CSS复习笔记

CSS 文章目录 CSS1.概念2.CSS 引入方式3.选择器基础选择器:标签选择器类选择器id 选择器通配符选择器 复合选择器:**后代选择器****子代选择器****并集选择器****交集选择器-了解****伪类选择器** 结构伪类选择器&#xff1a;**:nth-child&#xff08;公式&#xff09;**伪元素…...

墨语灵犀模型压缩与量化教程:降低部署资源消耗

墨语灵犀模型压缩与量化教程&#xff1a;降低部署资源消耗 你是不是也遇到过这种情况&#xff1a;好不容易找到一个效果不错的开源大模型&#xff0c;比如墨语灵犀&#xff0c;兴致勃勃地想部署到自己的服务器上试试&#xff0c;结果一看显存要求&#xff0c;直接傻眼了——动…...

nli-distilroberta-base算法优化:利用LSTM思想增强序列上下文建模

nli-distilroberta-base算法优化&#xff1a;利用LSTM思想增强序列上下文建模 1. 效果展示背景 在自然语言推理任务中&#xff0c;nli-distilroberta-base作为轻量级Transformer模型表现出色&#xff0c;但在处理长文本序列时仍面临挑战。传统Transformer架构的自注意力机制虽…...

Home Assistant ARM版在CasaOS上的完美配置指南(含时区设置技巧)

Home Assistant ARM版在CasaOS上的完美配置指南&#xff08;含时区设置技巧&#xff09; 对于智能家居爱好者来说&#xff0c;Home Assistant&#xff08;HA&#xff09;无疑是最强大的开源平台之一。而在ARM架构设备上运行HA&#xff0c;尤其是通过CasaOS这样的轻量级容器管理…...

GTX1060老显卡也能跑PyTorch!保姆级Win10+CUDA11.3+cudnn8.2环境配置避坑实录

GTX1060老显卡深度学习环境搭建全指南&#xff1a;从驱动优化到PyTorch实战 手里还握着五年前入手的GTX1060显卡&#xff1f;别急着让它退役。这套经典的Pascal架构显卡依然能在深度学习入门阶段大显身手。本文将带你完整走通Win10系统下的CUDA 11.3 cuDNN 8.2 PyTorch 1.11…...

OFA模型处理网络拓扑图:自动化生成网络设备连接描述

OFA模型处理网络拓扑图&#xff1a;自动化生成网络设备连接描述 1. 引言&#xff1a;网络工程师的文档之痛 如果你是一名网络工程师&#xff0c;或者负责过网络运维&#xff0c;一定对下面这个场景不陌生&#xff1a;面对一张密密麻麻、设备林立的网络拓扑图&#xff0c;你需…...

PX4仿真环境搭建全流程:解决roslaunch indoor1.launch报错及Gazebo崩溃问题

PX4仿真环境搭建全流程&#xff1a;从零构建到Gazebo调优实战 无人机仿真开发就像在数字世界里搭建一个飞行实验室&#xff0c;而PX4Gazebo的组合无疑是目前最接近真实飞行体验的虚拟试验场。但当你满怀期待地输入roslaunch indoor1.launch后&#xff0c;等待你的可能不是顺利起…...

[技术突破]obs-multi-rtmp:解决多平台直播资源浪费问题的高效分发方案

[技术突破]obs-multi-rtmp&#xff1a;解决多平台直播资源浪费问题的高效分发方案 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 行业痛点诊断 直播行业正面临多平台分发的严峻挑战&a…...

Janus-Pro-7B实操手册:批量图片理解任务脚本编写与结果结构化导出

Janus-Pro-7B实操手册&#xff1a;批量图片理解任务脚本编写与结果结构化导出 1. 项目背景与需求场景 在日常工作中&#xff0c;我们经常需要处理大量的图片理解任务。比如电商平台需要分析商品图片中的信息&#xff0c;内容审核团队需要识别图片中的违规内容&#xff0c;或者…...

UE5 RPG开发实战:用接口轻松搞定鼠标悬停敌人描边(含完整蓝图与C++代码)

UE5 RPG开发实战&#xff1a;用接口实现敌人悬停描边的高效方案 在动作角色扮演游戏&#xff08;ARPG&#xff09;开发中&#xff0c;清晰的交互反馈是提升玩家体验的关键环节。当玩家将鼠标悬停在敌人身上时&#xff0c;如何直观地标识当前选中的目标&#xff1f;本文将深入探…...

华为交换机流量统计配置全攻略:从ACL到流策略的保姆级教程

华为交换机流量统计配置全攻略&#xff1a;从ACL到流策略的保姆级教程 在网络运维工作中&#xff0c;流量统计是排查故障、优化性能的基础技能。想象一下这样的场景&#xff1a;某天凌晨&#xff0c;核心业务突然出现访问延迟&#xff0c;你需要快速判断是服务器问题还是网络链…...