当前位置:   article > 正文

ios mac xcframework 自动打包_mac 执行.sh 打包framework

mac 执行.sh 打包framework

XCFramework简介

XCFramework是XCode11中提出的一个新特性,是由XCode创建的一个可分发的二进制包,它包含了 framework 或 library 的一个或多个变体,因此可以在多个平台(iOS、macOS、tvOS、watchOS) 上使用,包括模拟器。XCFramework 可以是静态的,也可以是动态的。xcframework 的好处就是用 Xcode 发布的时候,Xcode 会自动选用正确的指令集 Frameworks,省去了手动移除动态库中的模拟器指令集的工作。

XCFramework 允许将适用于多个平台(包括iOS设备、iOS模拟器和Mac Catalyst) 的二进制框架或库打包到一个可分发的. XCFramework包中,开发人员可以在自己的应用程序中使用这个包。

上面摘抄的两段网上对XCFramework的解释。下面直接上图看一下xcframework的架构图。

可以看到上面xcframework包含ios真机(arm64、armv7),ios模拟器(i386、x86_64)、mac(arm64_x86_64),把这个xcframework引入工程中,xcode会自动识别需要引用的framework。

我们先来看一下xcode编译的常识

xcodeproj 和xcworkspace 两种方式打开,build不是同一个目录

xcodebuild 以scheme方式编译 可以编译到相应的目录。如果不指定project或者worsapce 则默认编译到xcodeproj 的目录。

-configuration Debug 或者 Release

-workspace worspace文件名称

-project project文件名称

-sdk sdk平台 iphoneos/iphonesimulator/macosx/appletvos/appletvsimulator/watchos/watchos

用xcodebuild -showsdks 查看所有支持的平台。

-destination 设备目标 可以用xcodebuild -showsdks 查看支持的列表。以“key=value”的方式添加 如-destination "arch=x86_64"

  1. xcodebuild -configuration "Debug" -scheme "mytest" -sdk iphoneos build
  2. xcodebuild -configuration "Debug" -project "mytest.xcodeproj" -scheme "mytest" -sdk iphoneos build
  3. xcodebuild -configuration "Debug" -workspace "mytest.xcworkspace" -scheme "mytest" -sdk iphoneos build

 xcodebuild scheme 编译方式就是手动编译的复刻。选择参数都在面板上有体现。

 

 xcodebuild 以target 方式编译 

没有workspace 参数,destination也不起作用。默认bulid 目录在  在项目的build目录下。可以在buildsettings中修改。

xcodebuild -configuration  "Debug" -target "mytest" -sdk iphoneos  build

以上两种命令的变异方式好像都不满足自动编译的要求。第一种,目录不固定,在不同的机子目录不同(随机字符串文件夹),第二种没法指定目标设备,一些指定指令集的编译无法满足。 

怎么办,只能在xcodebuild 以scheme 上想办法

buildsetting 有个build ,修改一下试试。改了以后build路径就在项目路径下了。值得一题的是,你把名字改回来意后,也是有效的,也就是说回不到之前的样子了。

查看一下project.pbxproj 多了个symroot,修改之前是没有的,改回之前build这个新增的属性也还在的, 编译路径还是在项目下。

好了,到现在frame对应各个平台的build都可以用 命令还实现了,下面就只要把这些,framework合成xcframework 了,把合并的framework路径 和输出xcframework添加到下面的变量中。

  1. arrframeworks_release="-framework /root/xx.framework [-framework /root/xx.framework ...]"
  2. sdk_output_release="/root/xx.xcframework"
  3. xcodebuild -create-xcframework $arrframeworks_release -output $sdk_output_release

最后,项目目录下执行你的shell文件就可以啦。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/332090
推荐阅读
相关标签
  

闽ICP备14008679号