Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何嵌入依赖于体系结构的框架_Ios_Xcode_Ios Frameworks - Fatal编程技术网

Ios 如何嵌入依赖于体系结构的框架

Ios 如何嵌入依赖于体系结构的框架,ios,xcode,ios-frameworks,Ios,Xcode,Ios Frameworks,我的iOS项目依赖于一些CustomLib.framework。这个框架有两个独立的文件:一个用于模拟器,另一个用于真实设备 我把这些文件放进文件夹 @(项目目录)/设备框架/CustomLib.framework 及 @(项目目录)/simulator\u框架/CustomLib.framework 我编辑 生成设置->搜索路径->框架搜索路径: Any iOS Simulator SDK $(PROJECT_DIR)/simulator_frameworks Any iOS SDK

我的iOS项目依赖于一些
CustomLib.framework
。这个框架有两个独立的文件:一个用于模拟器,另一个用于真实设备

我把这些文件放进文件夹

@(项目目录)/设备框架/CustomLib.framework

@(项目目录)/simulator\u框架/CustomLib.framework

我编辑

生成设置->搜索路径->框架搜索路径

Any iOS Simulator SDK     $(PROJECT_DIR)/simulator_frameworks
Any iOS SDK               $(PROJECT_DIR)/device_frameworks

我不明白的是如何将
CustomLib.framework
添加到Xcode项目中,以及如何将其添加为嵌入式框架(
Build phases->Embed frameworks
)。因为在这些步骤中,我必须指定一个具体的框架,但我在
设备框架
模拟器框架
文件夹中有两个独立的框架。

根据架构,xcode中没有办法包含它们,但苹果推出了2019 XcFramework作为一种新的代码分发格式

从XCode 11:

XCFramework可以捆绑二进制框架或 多平台库-包括iOS设备、iOS模拟器、, 和Mac Catalyst-集成到单个可分发的.xc框架包中 您的开发人员可以在自己的应用程序中使用

您可以使用它将这两个框架捆绑到一个框架中,将其添加到您的项目中,然后Xcode在构建时使用所包含框架或库的正确平台版本

您可以使用以下命令从终端创建XCFramework:

xcodebuild -create-xcframework -framework PATH_TO_FRAMEWORK1 -framework PATH_TO_FRAMEWORK2 -output PATH_TO_BUNDLED_FRAMEWORK
其中,
PATH_TO_FRAMEWORK1
PATH_TO_FRAMEWORK2
是框架的路径,
PATH_TO_BUNDLED_FRAMEWORK
是生成框架的路径

假设您在项目目录中,该命令可能如下所示:

xcodebuild -create-xcframework -framework device_frameworks/CustomLib.framework -framework simulator_frameworks/CustomLib.framework -output BundledCustomLib.xcframework
然后您只需要将
BundledCustomLib.xcframework
添加到项目中