iOS之如何创建.a静态库

news2024/11/15 9:34:38

番外:想要查看如何创建.framework静态库可前往看我​​​​​​​iOS之如何创建.framework静态库-CSDN博客这篇文章。

一、创建静态库项目

  • ①、打开 Xcode 并创建一个新的 Xcode 项目。

  • ②、选择 "macOS" -> "Framework & Library" -> "Cocoa Touch Static Library"。

  • ③、命名你的项目,例如 "StaticLibrary"。

  • ④、选择合适的语言 (Swift 或 Objective-C)。

如下图:

 二、添加你的代码

  • ①、删除项目创建后默认的文件,在项目中添加你想要包含在静态库中的代码文件。

  • ②、你可以在项目中添加新的类或头文件。

  • ③、确保你的代码经过测试并且没有错误。 

三、 配置静态库目标

①、修改BuildSetting配置,将Build Active Architeture Only 设置为NO

②、添加需要暴露在外面的.h文件,.m文件会自动编译到.a文件中。
添加New Headers Phase目录


Mark:这里需要暴露的.h文件需要放在Public列表栏里面。


③、Edit Scheme - 模式改为release模式。 

 四、构建静态库

分别在真机和模拟器上都要Command+B编译,编译之后我们可以看到如下内容:

其中,Release-iphoneos代表的是真机下的静态库文件,Release-iphonesimulator表示的是模拟器下的静态文库文件。

五、合并静态库

①、新建一个文件夹用来存放真机和模拟器下打包出来的静态库,博主这里新建一个“合并静态库”的文件夹(不新建在原目录也一样)。

​​​​​​​

②、打开终端,在终端输入lipo -create 模拟器下的.a 真机下的.a -output 新合并的静态库的存放路径,如下:

温馨提示:如果在合并的过程中有人碰到跟博主一样的错误的话,请按照下面的方式修改Xcode配置,然后重新编译生成新的.a静态库:

①、选择模拟器,此时可以看到模拟器支持arm64

出现错误的原因在于:在Xcode12之后编译的模拟器静态库也支持arm64,会导致真机和模拟器有相同的支持架构arm64,这也就导致模拟器和真机不能合并的问题,上面Xcode设置就是将arm64架构移除。

记得设置好编译完模拟器静态库后重新选择真机应把配置更改回去

合并之后,可以在目标文件夹下看到我们刚合并的静态库:

③、可以使用lipo -info看一下我们打出来的这个静态库支持的架构是哪些:

此时.a静态库算是完全制作完成​​​​​​​

六、Mark注意点:

温馨提示:如果项目里找不到.a的文件,如下图:

项目目录里没有Products文件以及.a静态库
打开StaticLibrary.xcodeproj的包内容
打开project.pbxproj
将mainGroup的值复制到productRefGroup,保存
重新打开项目可以看到项目目录里有Products文件以及.a静态库

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

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

相关文章

“拿来主义”学习元素裁剪(附源码)

“拿来主义”学习元素裁剪 欢迎关注: 小拾岁月,获取源码。 参考链接:https://mp.weixin.qq.com/s/TsOOhUAff6OeqPW7A9JuaQ 预期效果图 需求分析 首先从需求上来看,需要一个主元素用于展示用户头像。例外,在页面无操…

[保姆级教程]uniapp设置字体引入字体格式

文章目录 在 UniApp 中设置和引入自定义字体(如 .ttf、.woff、.woff2 等格式)通常涉及几个步骤。 准备字体文件: 首先,你需要有字体文件。这些文件通常以 .ttf、.woff 或 .woff2 格式提供。确保有权使用这些字体,并遵守…

Docker配置国内镜像加速-2

Docker 官方镜像仓库(如 Docker Hub)可能由于网络原因,在某些地区或网络环境下下载速度较慢。使用镜像加速可以从距离用户更近、网络条件更好的镜像服务器获取镜像,从而显著提高下载速度,节省时间。 1.测试是否安装 d…

基于Java少儿编程管理系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

PyTorch实战:借助torchviz可视化计算图与梯度传递

文章目录 Tensor计算的可视化(线性回归为例) 如何使用可视化库torchviz 安装graphviz软件 安装torchviz库使用 torchviz.make_dot() 在学习Tensor时,将张量y用张量x表示,它们背后会有一个函数表达关系,y的 grad_f…

2024 年首份软件漏洞报告

Action1 Corporation 发布了其首份 2024 年软件漏洞评级报告。 该报告旨在为首席信息安全官 (CISO) 和首席信息官 (CIO) 提供有关其软件生态系统的战略见解。 它根据软件供应商的安全记录对其进行评估,以便做出更明智的采购决策。 此次发布是在国家漏洞数据库 (N…

让在制品管理更有效

徐总的工厂生产线非常繁忙,每天都在不停地运转。但在制品的流转和存储也非常混乱,导致了很多问题的出现。 一方面,由于缺乏有效的管理,在制品的库存不断增加,占用了大量的资金和空间资源。这些库存不仅增加了库存成本&…

从50分到90分,网站性能优化实践

难以置信: 我可是用尊贵的Vue3Ts开发的呢 (手动狗头). 十分抗拒: 迫于yin威,我给网站做了体检和手术. 体检 – 市面上的体检套餐有很多种,但其实都是换汤不换药.那药(标准)是什么呢?我们会在下面说明.这里我选择了谷歌亲儿子"灯塔"(LightHouse)进行性能体检. 体检…

PyTorch中“No module named ‘torch._six‘“的报错场景及处理方法

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 在使用PyTorch时,您可能会遇到"No module named ‘torch._six’"的错误。这通常是因为PyTorch的某些…

[分布式网络通讯框架]----集群与分布式的区别

单机聊天服务器 聊天系统做了模块化设计,每一个模块都包含很多特定的业务 缺点: 单机聊天服务器极大程度的受限于硬件资源,服务器所能承受的用户并发量是有限的,即使我们通过改变最大连接量等参数,但是受到单机本身…

VUE div的右上角的角标/标签

一、效果图 二、代码 <div class"comp-overview"><div class"overview-item" v-for"(item,index) in overviewInfoList" :key"index"><div class"angle_mark"><span>{{item.label}}</span>&…

CRMEB 多商户Java版v1.6公测版发布,付费会员上线,立即体验

新版本来袭&#xff01;CRMEB 多商户Java版v1.6正式发布&#xff01; 在v1.6新版本中&#xff0c;我们带来了付费会员体系&#xff0c;这将让商业模式更加灵活多元&#xff0c;新增加的移动端商家管理&#xff0c;也让运营触手可及&#xff0c;更加便捷&#xff0c;还有商家端员…

Pixel Heroes Fantasy Editor

使用Pixel Heroes: Fantasy Editor创建令人惊叹的像素角色!它是如何工作的?只需在编辑器中构建角色并保存动画精灵表。运行时动态构建角色使用角色构建器脚本!想将角色与不同的游戏引擎一起使用?只需制作PNG精灵表并导入其他软件! 特征: ● 角色编辑器,用于生成64x64帧的…

【SQL Server数据库】简单查询

目录 用SQL语句完成下列查询。使用数据库为SCHOOL数据库 1. 查询学生的姓名、性别、班级名称&#xff0c;并把结果存储在一张新表中。 2. 查询男生的资料。 3. 查询所有计算机系的班级信息。 4&#xff0e;查询艾老师所教的课程号。 5. 查询年龄小于30岁的女同学的学号和姓名。…

基于Java中的SSM框架实现萌宠优购系统项目【项目源码】计算机毕业设计

基于Java中的SSM框架实现萌宠优购系统演示 研究背景 现在人们在生活中、工作中压力与日俱增&#xff0c;而宠物也在人们的生活扮演者越来越重要的角色。然而&#xff0c;对于一些宠物爱好者来说&#xff0c;宠物早已经是他们生活中不可或缺的一部分。因为宠物能与人有心灵的沟…

【开放词汇分割】GroupViT: Semantic Segmentation Emerges from Text Supervision

论文链接&#xff1a;GroupViT: Semantic Segmentation Emerges from Text Supervision 代码链接&#xff1a;https://github.com/NVlabs/GroupViT/tree/main 作者&#xff1a;Jiarui Xu, Shalini De Mello, Sifei Liu, Wonmin Byeon, Thomas Breuel, Jan Kautz, Xiaolong Wa…

Centos 9Ubuntu 22.0.3图形搭建网桥

1、安装bridge-utils软件 [root@devcops612 ~]# yum install bridge-utils.x86_64 2、创建桥接器 [root@devcops612 ~]# cd /etc/NetworkManager/system-connections [root@devcops612 ~]# nmcli connection show #查看网络连接,确认桥接物理接口 [root@devcops612 system…

吴恩达机器学习作业ex4:反向神经网络学习(Python实现)详细注释

文章目录 1.神经网络1.1 可视化数据1.2 模型表示1.3 前馈和成本函数1.4 正则化代价函数 2.反向传播2.1 Sigmoid的导数2.2随机初始化2.3 反向传播2.4梯度检测2.5 正则化神经网络2.6 优化参数 3.可视化隐藏层 1.神经网络 在上一个练习中&#xff0c;您为神经网络实现了前馈传播&…

Steam怎么卸载DLC Steam怎么只卸载DLC不卸载游戏教程

我们玩家在steam中玩游戏&#xff0c;有一个功能特别重要&#xff0c;那就是DLC&#xff0c;其实也就是一款游戏的扩展&#xff0c;很多游戏都有DLC&#xff0c;让游戏玩法特别丰富&#xff0c;比如都市天际线的DLC&#xff0c;给城市中就增加了很多建筑&#xff0c;或者更便捷…

第十二次作业

成功做出insert 点击新增跳转到insert.html 点击增加&#xff0c;跳转回studentinformation2.html 数据表和页面都显示出新增的数据了 成功做出来删除 点击删除按钮 点击确定&#xff0c;丽丽被成功删除&#xff01; 一些代码