问题标签 [xcframework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5774 浏览

ios - 找不到框架 .xcframework

我使用 Xcode 11.0 命令行创建了一个.xcframework 。如果我只是将它拖放到 Xcode 11.0 以上的任何 Xcode 项目上,它就可以正常工作。我在 Xcode 11.0、11.1、11.2.1 上进行了尝试,并且在它们上运行良好。现在我正在尝试通过 Cocoapods 使用它。为此,我在给定框架的本地路径的情况下创建了 podspec 文件。它也成功地将 Pod 安装到项目中。但是现在当我尝试构建项目时,它会说失败

ld:找不到框架 RandomNames.xcframework

我不确定问题出在哪里,因为如果我们直接使用拖入项目中它可以正常工作。我检查了框架搜索路径,尝试重新分解、清理和安装它们,但没有成功。

这是我得到的错误:

在此处输入图像描述

下面是我正在使用的 .podspec 文件:

在此处输入图像描述

0 投票
1 回答
174 浏览

ios - 是否可以导出本身嵌入另一个 XCFramework 的 XCFramework?

上一届 WWDC 引入了 XCFramework,这是一种分发通用框架的简单方法。我一直在使用它,而且效果很好。

现在,假设我有一个应用程序“A”,它嵌入了一个框架“B”(作为 .xcframework),它本身嵌入了一个框架“C”:

应用 A -> 框架 B -> 框架 C

当我这样做时,A 无法加载 B,因为 A 找不到 C(“没有这样的模块 'C'”)。

有没有正确的方法或任何解决方法?

0 投票
1 回答
2515 浏览

ios - Xcode 11.3 通用框架问题

如何在Xcode 11.3iOS 13中创建自定义 通用框架,任何运行脚本?

0 投票
0 回答
743 浏览

xcode11.3 - XCFramework 项目中的警告:模块“ModuleName”未在库演化支持下编译

我正在尝试创建 XCFramework,它具有使用 SPM 导入的多个依赖项。我将BUILD_LIBRARIES_FOR_DISRTIBUTION目标设置为“是”。

但是 XCFramework Project 中每行下一行的这个警告import <ModuleName>让我很好奇:那里有什么问题吗?

警告:

注意:归档和创建 xcframework 成功。

0 投票
1 回答
67 浏览

ios - 我的带有视图控制器的 swift 二进制框架缺少出口

我创建了一个 swift 二进制框架,其中包含视图控制器。视图控制器包含 iboutlet 属性,如按钮、标签等。但是当我对视图控制器进行子类化时,接口构建器中缺少出口。身份检查器中甚至缺少模块。

我在这个线程上有一个类似的问题: https ://forums.developer.apple.com/thread/82904

0 投票
1 回答
7741 浏览

swift - 错误:旧版构建系统不支持使用 xcframeworks

我已经创建了 .xcframework 并尝试通过在 xcode 项目中嵌入 .xcframework 来在另一个应用程序中使用,但是我收到一个错误“错误:旧版构建系统不支持使用 xcframeworks”。我在 xcode 11.3 中测试这个

0 投票
2 回答
153 浏览

swift - 如果在扩展 Swift5.1 Xcode11.3 中声明,子类无法访问便利 init

我制作 xcframework。这段代码在里面。我将此 xcframework 链接到应用程序并使用它,但 MyButton 类没有方便的 init。XCode 11.3

0 投票
1 回答
1072 浏览

ios - 快速创建具有第三方依赖项的 iOS 编译 SDK(使用 CocoaPods)

我在Swift 5.1中有一个 SDK,我们的客户希望将其作为已编译的 SDK 分发(出售)而不是提供其源代码。

不幸的是,这个 SDK 依赖于一些第三方库,使用 CocoaPods(Alamofire、RealmSwift、ReachabilitySwift 等)集成。我知道您应该避免在您的框架/库中包含第三方依赖项,但不幸的是,我们在另一个机构启动后开始着手这个项目。这个SDK其实是cocoapod的Pod,但不是编译好的pod。

将此 SDK 作为编译后的 SDK 分发的最佳方法是什么(以避免将源文件提供给最终购买它的消费者)?

据我了解,如果您使用第三方依赖项编译您的 sdk,您必须确保应用程序将使用与编译后的 sdk 使用的具有相同公共 api 的相同库,否则应用程序将崩溃运行。据我所知,这样做的唯一方法是在编译的 sdk podspec 中指定每个第三方依赖项的非常严格的版本。例如,Alamofire,'~> 4.2.0'。但我不喜欢这种方法,因为这样应用程序不能使用更新版本的 Alamofire(或其他依赖项),只是因为已编译的 sdk 已使用该版本编译。

我正在创建一个 XCFramework,然后是一个 podspec,其中 XCFramework 作为 vendored_framework 出售(使用 CocoaPods 1.9.0-beta2,这是目前唯一支持 XCFrameworks 作为 vendored_framework 的)。

我尝试了许多不同的方法,例如尝试将编译的 sdk 构建为静态库并将其第三方依赖项也链接为静态库,但在这种情况下,当在应用程序中使用它时,以及相同的依赖项(例如 Alamofire),我看到在控制台中,一些“X 类在 Y 和 Z 中都实现。使用哪一个是未定义的”(其中 Y 和 Z 是 sdk 和应用程序)。

你有什么建议吗?你会怎么做?

谢谢!

0 投票
0 回答
1414 浏览

ios - 错误:不支持将桥接头与模块接口一起使用

我正在尝试从框架模块创建一个 .xcframework,该模块在内部使用另一个 obj-c 框架。所以我创建了桥接头将 obj-c 标头导入到 swift 框架中。它运行良好,但是当我尝试存档时

xcodebuild archive -scheme module_name -destination="iOS" -archivePath /tmp/xcf/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES

在终端中,我收到错误消息

错误:不支持将桥接头与模块接口一起使用

如何解决这个问题?

0 投票
6 回答
9917 浏览

ios - 将 XCFramework 嵌入到具有项目框架依赖项的应用程序中

我有一个 Xcode 工作区,其中包含一个带有 iOS 应用程序目标的项目和另一个带有框架目标的项目。框架目标依赖于另一个框架,该框架以以下形式集成xcframework

  • 我的应用
  • 我的框架
  • 其他框架

使用常规OtherFramework.framework需要将其链接到MyFramework然后嵌入,MyApp即使MyApp不需要框架本身。但是,当与 集成时xcframework,该项目将无法构建并出现No such module 'OtherFramework'错误。

项目设置:

我的框架项目

我的应用项目

OtherFramework.xcframework从目标中移除MyApp修复了构建问题,但随后library not loaded由于框架不存在于应用程序中而导致错误。

演示项目:https ://github.com/msaps/XCFramework-Link-Issue

你打算如何链接xcframework应用程序和依赖框架中的链接?

为什么?

pyckamil刚刚发布了这篇文章,详细解释了这个问题:XCFrameworks 的一切都错了

事实证明,Xcode 对从活动构建架构ProcessXCFrameworkLibrary中提取正确的步骤进行了优化。这仅运行一次,这会导致尝试链接同一框架的其他目标出现问题。.framework.xcframework

更新

此问题已在 Xcode 12.0 中解决