iOS开发framework和demo 使用cocoapod方法集成三方库

news2024/9/28 5:33:13

使用workspace。workspace相当于项目管理,创建workspace形成的文件是.xcworkspace。使用

一、xcode创建workspace并放入SDKFramework文件夹内,如图
选择File → new→Workspace  → 点击save

 

这时候文件夹中就多了 SDKFramework.xcworkspace 文件

1-4.png

 

3、打开 SDKFramework.xcworkspace 分别创建Demo和framework两个项目并添加到 SDKFramework.xcworkspace 中,如图

app:

 1-5.png

 1-6.png

 1-7.png

framework:

1-8.png

 1-9.png

 1-10.png

创建完的项目文件夹和项目层级如下图:

 1-11.png

 1-12.png

二、项目基本架构已经创建好,现在可以给framework设置配置:

1、设置Build Active Architecture Only 值 为NO

 2-1.png

2、搜索Mach,设置为Static Library

 2-2.png

3、Build Libraries for Distribution 设置为Yes (如果是swift语言的时候需要)

 

2-3.png


三、配置完成,开始编辑引用cocoa集成第三方库

1、使用终端cd 到 SDKFramework文件夹

2、创建podfile 文件

终端 输入命令:vim Podfile ,按esc按键并输入:wq 按回车键保存 。双击打开编辑。

pod 引用格式如下:


platform :ios, '11.0'

use_frameworks!

workspace 'SDKFramework.xcworkspace'

def common_pods
  
  pod 'AFNetworking','4.0.1'
  pod 'Masonry','1.1.0'
  pod 'SVProgressHUD','2.2.5'
  pod 'YYModel','1.0.4'
  pod 'YYCategories','1.0.4'
  pod 'JXCategoryView','1.5.8'
  pod 'FDFullscreenPopGesture','1.1'
  pod 'TZImagePickerController','3.5.7'
  pod 'AliyunOSSiOS','2.10.8'
  pod 'MJRefresh','3.5.0'
  pod 'Toast','4.0.0'
  pod 'YYWebImage','1.0.5'
  pod 'AMapLocation-NO-IDFA','2.6.7'
  pod 'SSZipArchive', '2.2.2'
  pod 'SAMKeychain', '1.5.2'
  pod 'AMapLocation-NO-IDFA','2.6.7'
  
end

target 'SDKFramework' do
  
  project 'SDKFramework/SDKFramework.xcodeproj'
  
  common_pods
  
end

target 'SDKFrameworkDemo' do
  
  project 'SDKFrameworkDemo/SDKFrameworkDemo.xcodeproj'
  
  common_pods

end

post_install do |installer|
  installer.pods_project.targets.each do |target|

    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'

    end
  end
end

指明xcworkspace名称

workspace 'SDKFramework.xcworkspace'

target 'SDKFrameworkDemo' do

这里的project要指明路径

project 'SDKFrameworkDemo/SDKFrameworkDemo.xcodeproj'

target 'SDKFramework' do

这里的project要指明路径

project 'SDKFramework/SDKFramework.xcodeproj'

在SDKFramework目录下执行:  pod install 命令

6、加载完成后如图所示

 打开工作组开始制作您的framework吧!

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

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

相关文章

功率放大器在MEMS微结构模态测试研究中的应用

实验名称:功率放大器在MEMS微结构模态测试研究中的应用研究方向:元器件测试测试目的:随着MEMS器件在各个领域中广泛应用,对微结构进行模态测试获得其动态特性参数对微结构的设计、仿真、制造、以及质量控制和评价等方面具有十分重…

机器学习:self-attention

输入 编码方式: one-hot:word-embedding:能更明显的区分不同类别的输入 图也能看作是多个向量输入 输出 每个向量都有一个label 一整个sequence有一个label 模型自己决定有多少个label(sequence to sequence) 重点介绍每个vector有一个…

Qt编写视频监控系统71-外网访问摄像头等设备(获取各种信息及拉流)

一、前言 最近遇到个需求是通过外网接入摄像机或者NVR,通用的做法是将视频流推流到服务器,然后拉取rtmp视频流,这样就多了服务器的要求,而且实现的功能有限比如不能直接用onvif协议对设备获取信息和配置信息,还有个做…

Guitar Pro8.0吉他打谱作曲中文版有哪些新功能?

很多人在听到Guitar Pro这个名词时,本能反应就是跟吉他有关的软件吧,但是具体是什么样子,有什么功能我们却不一定知道的那么详细,下面呢,我们就来详细的介绍下Guitar Pro这款软件。最后,Guitar Pro绝对是初…

【JAVA八股文】并发相关

并发相关1. 线程状态2. 线程池3. wait vs sleep4. lock vs synchronized5. volatile6. 悲观锁 vs 乐观锁7. Hashtable vs ConcurrentHashMap8. ThreadLocal1. 线程状态 六种状态及转换 分别是 新建 当一个线程对象被创建,但还未调用 start 方法时处于新建状态此时…

20- Xgboost 算法参数最优化 (集成算法) (算法)

Xgboost 方式一 from xgboost import XGBClassifier model XGBClassifier(learning_rate 0.1, # 学习率,控制每次迭代更新权重时的步长,默认0.3。值越小,训练越慢use_label_encoderFalse,n_estimators10, # 总共迭代的次数,即…

英特尔研究院探索负责任的生成式AI,让AI应用真正惠及大众

ChatGPT的爆火让AI再次成为大众热议的焦点,作为英特尔所提出的搭建起从模拟时代到数字时代桥梁的五大“超级技术力量”之一,伴随着无处不在的智能化,AI可将无穷的数据转化为切实可行的洞察。作为半导体行业的领先企业,在这一前沿技…

Windows系统从权限维持角度进行应急响应

一、基本介绍 红队攻击者在对目标进行渗透利用后通常都会进行权限维持,以达到持续利用的目的。而作为防守方进行应急响应时,应该如何与技术高超(jiaohuajianzha)的攻击者斗智斗勇呢?或许可以通过本文可以找到答案。以…

企业小程序开发步骤【教你创建小程序】

随着移动互联网的兴起,微信已经成为了很多企业和商家必备的平台,而其中,微信小程序是一个非常重要的工具。本文将为大家介绍小程序开发步骤,教你创建小程序。 步骤一、注册小程序账号 先准备一个小程序账号,在微信公…

ROS从入门到精通5-5:局部路径规划插件开发案例(以DWA算法为例)

目录0 专栏介绍1 局部规划插件制作框架2 DWA算法源码分析2.1 全局路径裁剪2.2 更新局部代价2.3 运行DWA算法2.3.1 构造动态窗口2.3.2 生成最优轨迹2.4 终点规划3 算法测试0 专栏介绍 本专栏旨在通过对ROS的系统学习,掌握ROS底层基本分布式原理,并具有机…

区块链知识系列 - 系统学习EVM(四)-zkEVM

区块链知识系列 - 系统学习EVM(一) 区块链知识系列 - 系统学习EVM(二) 区块链知识系列 - 系统学习EVM(三) 今天我们来聊聊 zkEVM、EVM 兼容性 和 Rollup 是什么? 1. 什么是 Rollup rollup顾名思义,就是把一堆交易卷(rollup)起来…

oracle官方下载历史版本JDK版本

背景 日常工作中由于一些特殊原因,我们需要下载指定系统指定位数指定版本的jdk,这个时候去网上搜索下载就会遇到各种坑,病毒、诱导连接、诱导关注/注册、付费、错误版本等,所以最好的办法是去官网下载,下面列举两种方式…

Allegro中如何删除多余D码操作指导

Allegro中如何删除多余D码操作指导 用Allegro做PCB设计的时候,在最后输出生产文件的时候,必须清除多余的D码,不让多余的D码出现在D码文件中,类似下图 如何清除多余D码,具体操作如下 点击Tools点击Padstack

WIN11/win10+Azure Kinect DK详细驱动配置教程(亲测)

本人3000多大洋 买了一台 Azure Kinect DK设备,打算研究研究人体姿态。今天配置一下,网上的教程不少,有的过期教程,有的和我的不匹配,所以,只能参考他们的,取其精华 去其糟粕。下面 开始,这里先…

C#.Net正则表达式学习笔记

C#.Net正则表达式学习笔记 在处理字符串时,你会经常有查找符合特定条件的字符串的需求,比如判断一串电话号码是否符合格式、一个邮箱是否符合格式、一个密码是否包含了字母大小写等等。 正则表达式(Regular expressions)用于匹配文本,使用一…

[2023]自动化测试框架完整指南

所有软件在提供给用户之前都必须经过测试。软件测试是开发生命周期中必不可少的一步因为它确保用户必须收到符合其开发目的的高质量产品。每个企业都优先考虑测试;因此,大多数人更愿意从手动测试转向自动化。因此,自动化测试框架是任何软件测试过程的基础…

redis 分布式缓存、主从集群

目录分布式缓存1.Redis持久化1.1.RDB持久化RDB原理1.2.AOF持久化1.3.RDB与AOF对比2.Redis主从2.1.搭建主从架构2.2.主从数据同步原理2.2.1.全量同步2.2.2.增量同步2.2.3.repl_backlog原理2.3.主从同步优化方式2.4.全量同步和增量同步区别3. Redis哨兵3.1 集群监控原理3.2 集群故…

powerjob的worker启动,研究完了这块代码之后我发现了,代码就是现实中我们码农的真实写照

这是一篇让你受益匪浅的文章,代码即使人生。 worker启动比server启动要复杂一些,毕竟worker是要实际干活的,工欲善其事必先利其器,所以需要准备的工具还是不能少的,server对于powerjob来说,只是一个调度用的…

JVM详解

一,JVM 1,JVM区域划分 类装载器,运行时数据区,字节码执行引擎 2,JVM内存模型(运行时数据区) 由本地方法栈,虚拟机栈,堆,方法区,和程序计数器组成。…

C++类基础(十五)

类的继承——虚函数&#xff08;二&#xff09; ● 由虚函数所引入的动态绑定属于运行期行为&#xff0c;与编译期行为有所区别 虚函数与继承紧密相关 – 虚函数的缺省实参只会考虑静态类型 struct Base {virtual void fun(int x 3){std::cout << "virtual void f…