gpt4 book ai didi

ios - 如何嵌入依赖于架构的框架

转载 作者:行者123 更新时间:2023-12-01 16:01:26 25 4
gpt4 key购买 nike

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

我把这些文件放到文件夹里

@(PROJECT_DIR)/device_frameworks/CustomLib.framework

@(PROJECT_DIR)/simulator_frameworks/CustomLib.framework

我编辑

build设置->搜索路径->框架搜索路径:

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

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

最佳答案

xcode 无法根据架构包含它们,但 Apple 引入了 2019 XCFrameworks 作为新的代码分发格式。

来自 XCode 11 release notes :

An XCFramework makes it possible to bundle a binary framework or library for multiple platforms —including iOS devices, iOS simulators, and Mac Catalyst — into a single distributable .xcframework bundle that your developers can use within their own applications.

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

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

xcodebuild -create-xcframework -framework PATH_TO_FRAMEWORK1 -framework PATH_TO_FRAMEWORK2 -output PATH_TO_BUNDLED_FRAMEWORK

PATH_TO_FRAMEWORK1PATH_TO_FRAMEWORK2 是框架的路径,PATH_TO_BUNDLED_FRAMEWORK 是生成的 XCFramework 的路径。

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

xcodebuild -create-xcframework -framework device_frameworks/CustomLib.framework -framework simulator_frameworks/CustomLib.framework -output BundledCustomLib.xcframework

然后您只需要将 BundledCustomLib.xcframework 添加到您的项目中。

关于ios - 如何嵌入依赖于架构的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59876055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com