Swift制作打包framework

news2024/12/23 13:47:30

新建framework项目

 

设置生成fat包,包括模拟器x86_64和arm64

Buliding Settings -> Architectures -> Build Active Architecture Only 设置为NO

设置打包环境,选择release

edit Scheme -> run -> Build configuration 设置为 Release

设置静态库

 Buliding Settings -> Linking -> Dead Code Stripping 设置为NO

 Buliding Settings -> Linking -> Mach-O Type 设置为Static Library

创建打包合并framework脚本

添加打包+合成脚本代码:

# Install dir will be the final output to the framework.
# The following line create it in the root folder of the current project.
FMK_NAME=${PROJECT_NAME}
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework

# Working dir will be deleted after the framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Build/Products/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Build/Products/Release-iphonesimulator/${FMK_NAME}.framework

# -configuration ${CONFIGURATION}
# Clean and Building both architectures.
xcodebuild -project ${FMK_NAME}.xcodeproj -scheme ${FMK_NAME}  -configuration Release -derivedDataPath ${WRK_DIR} clean

xcodebuild -project ${FMK_NAME}.xcodeproj -scheme ${FMK_NAME} -configuration Release -derivedDataPath ${WRK_DIR} -sdk iphoneos -arch arm64  clean build
# simulator
xcodebuild -project ${FMK_NAME}.xcodeproj -scheme ${FMK_NAME} -configuration Release -derivedDataPath ${WRK_DIR} -sdk iphonesimulator -arch x86_64 build

# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi


mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"

cp -R "${SIMULATOR_DIR}/Modules/${FMK_NAME}.swiftmodule" "${INSTALL_DIR}/Modules/"

#rm -r "${WRK_DIR}"

open "${SRCROOT}/Products/"

运行脚本,生成的framework会在项目根目录的Products文件夹下。

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

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

相关文章

专题解读|Graph Fairness代表性工作介绍

1. 图上的公平性问题 图在现实世界中无处不在,例如知识图谱,社交网络和生物网络。近年来,图神经网络( graph neural networks,GNNs ) 在图结构数据建模方面表现出了强大的能力。一般地,GNNs采用消息传递机制&#xff…

什么是应用集成?应用集成快速指南

什么是应用集成? 想象一下,在剧院观看音乐剧,没有人站在正确的地方,每个人都在互相交谈,或者有漫长而尴尬的沉默,管弦乐队的音乐家们在错误的时刻演奏,完全是混乱的,就会很难看。 业…

房产中介租房小程序系统开发搭建:详细指南教你如何构建

随着微信小程序的日益普及,越来越多的企业和个人开始尝试开发自己的小程序。以下是制作一个房地产微信小程序的详细教程,希望对大家有所帮助。 一、注册登录乔拓云平台,进入后台 首先,需要注册并登录乔拓云平台,该平台…

Centos上删除文件及目录的命令积累

01-如果我想删除Centos上当前目录下的文件 test06-2023-11-14-01.sql 该怎么操作? 答:如果你想删除CentOS上当前目录下的文件 test06-2023-11-14-01.sql,可以使用 rm 命令。以下是删除文件的基本语法: rm test06-2023-11-14-01.s…

sql查询查看数据库空间使用情况

SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),990.99) || % "使…

Nexus的Maven私有仓库搭建

Nexus的maven私有仓库搭建 一、了解 maven仓库设置 默认设置 其中: maven-central: 预定义的代理Maven Central仓库,它包含了大量的开源Java依赖包。maven-public: 存储库是一个组合存储库,它包含了maven-releases和maven-snapshots存储库…

【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)

🚀个人主页:为梦而生~ 关注我一起学习吧! 💡专栏:机器学习 欢迎订阅!后面的内容会越来越有意思~ 💡往期推荐: 【机器学习基础】机器学习入门(1) 【机器学习基…

CM211-1 MC022主板输入刷Armbian

咋一看以为是NAND的存储,经过各方搜索,发现BWCMMQ511G08G存储芯片是狭义的NAND,支持emmc协议,故而做尝试。 烧写步骤 1.下载Armbian镜像 Armbian_23.11.0_amlogic_s905l3-cm211_lunar_6.1.60_server_2023.11.01.img.gz 2.将镜像…

Leetcode—4.寻找两个正序数组的中位数【困难】

2023每日刷题(二十九) Leetcode—4.寻找两个正序数组的中位数 直接法实现代码 int mid, mid1, mid2; bool findmid(int n, int k, int x) {if(n % 2 1) {if(k n / 2) {mid x;return true;}} else {if(k n / 2 - 1) {mid1 x;} else if(k n / 2) {…

程序员,你的护城河挖好了吗?

程序员的护城河 在遥远的古代,护城河是一种防御工事,通常用于保护城市或城堡免受外部攻击。它是由人工挖掘或天然形成的河流、壕沟或城墙等,可以作为防御屏障,阻止敌人的进入。 而对于程序员而言,“护城河”是一种比喻…

Java之SpringCloud Alibaba【九】【Spring Cloud微服务Skywalking】

Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】跳转Java之SpringCloud Alibaba【二】【微服务调用组件Feign】跳转Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】跳转Java之SpringCloud Alibaba【四】【微服务 Sentinel服务熔断】跳转Java之Sprin…

【milkv】2、mpu6050驱动添加及测试

前言 本章介绍mpu6050的驱动添加以及测试。 其中驱动没有采用sdk提供的驱动,一方面需要配置irq,另一方面可以学习下如何通过ko方式添加驱动。 一、参考文章 驱动及测试文件编译流程: https://community.milkv.io/t/risc-v-milk-v-lsm6ds…

Semantic Kernel 学习笔记2

本来想白瞟免费Bing Search API如下,但是报错无法链接利用免费的必应 Bing 自定义搜索打造站内全文搜索_bing_subscription_key-CSDN博客 改成按照官方推荐申请,并在.env文件中添加BING_API_KEY""字段。 1. 打开https://www.microsoft.com/en-…

Quarkus 替代 SpringBoot

1 概述2 SpringBoot3 Quarkus4 比较5 调查结果6 从 Spring 转换到 Quarkus7 我是 Spring 开发者,为什么要选Quarkus?8 Spring 开发者可以活用哪些现有知识?9 对Spring开发者有额外的好处吗?10 Spring开发者如何开始学习Quarkus&am…

mp4视频批量截取!!!

mp4视频批量截取!!! 问题:如果我们想截取一个mp4视频中的多个片段,一个一个截会很麻烦! 可以将想要截取的开始时间和结束时间保存到 excel表 中,进行批量截取。 1、对一个视频,记…

临床决策分析(DCA)演示APP:理解DCA分析

临床决策分析(DCA)演示APP:理解DCA分析 之前讨论了DCA分析的分析过程和作用,认为其最主要的作用是确定预测模型的决策阈值,从而促进预测模型与临床的结合。DCA的影响不止于此,在DCA分析中,预测…

C++模拟实现——红黑树

一、介绍 红黑树也是对一般的搜索二叉树不能保证平衡的一个改进,和AVL树采用的思路不同,但同样需要旋转,其本质也是一颗平衡搜索二叉树,其节点有颜色的区分,并且被一些规则束缚,在这些规则下,能…

远勤山丨于无声处听惊雷——写在远航汽车投产下线之际

“只要未来有前途的产业必然竞争激烈。新能源汽车目前还有很多新进入者,证明还有很大的成长空间。对于远航汽车,我们非常有信心坐上最后的牌桌。” 2023年11月8日,在山西运城大运新能源生产基地举办的“远航汽车下线仪式”上,大运…

举报“将我的电脑控作己用者”!

既然“麻辣800727”都说是“街子电信”干的,那么,我现在就正式举报:请依法管理宽带网,你国营的也不可以随意侵犯用户的人权,更不可以将自己变成法外之地! 请公开答复,并改正,否则把…

Web实验(总)

目录 网站需求: 思路: 实验步骤: 第一步:准备工作 第二步:新建一个存储网页的目录 第三步:修改本地hosts映射 第四步:修改配置文件,建立基于http服务的网站 1)创建用户song和…