问题标签 [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 投票
0 回答
154 浏览

swift - 'React/RCTBridgeModule.h' 文件未找到#import

当我尝试从著名的命令行制作 XCFramework 时,我面临以下错误:

我的私有框架项目具有 react-native 依赖项。我在 Xcode 12.4 上。我已经尝试了以下步骤:

  1. 删除派生数据并清理构建。
  2. 拆解吊舱并安装吊舱。
  3. 使用最新的可可豆荚版本。
  4. 须藤 Xcode 选择 --reset。
0 投票
1 回答
431 浏览

ios - WebRTC 的 XCFramework 更新后的任何 iOS 设备构建错误

更新到 WebRTC 的 XCFramework 后出现错误。这是它的手动说明:https ://swiftpackageregistry.com/alexpiezo/WebRTC

我不需要 Mac,所以我的步骤是这样的:

它适用于 iOS 模拟器和真实设备,但任何 iOS 设备(arm64、armv7)都不起作用。

有什么建议我应该怎么做才能克服它?

0 投票
1 回答
502 浏览

ios - Xcode 12.4:为 iOS 模拟器构建,但链接和嵌入式框架“GoogleCast.framework”是为 iOS + iOS 模拟器构建的

我不能是唯一一个在 Xcode 12.4 项目中使用适用于 iOS 的 Google Chromecast SDK 的人。那么,有没有人解决这个问题,因为我可以看到谷歌没有在安装/设置页面上发布任何类型的修复或解决方法。

0 投票
2 回答
243 浏览

ios - 通过 Xcode 使用 xcframework 时 iOS 模拟器崩溃

正如标题所述,我在模拟器上使用 xcframework 时遇到了崩溃。在此之前,我会从 lipo 命令生成一个 fat 文件,该文件在设备和模拟器上都运行良好。模拟器和设备的各个框架是通过 CMake 构建的,并生成一个framework文件,每个文件都有自己的 Info.plist、确认.plist、公共头文件目录(这是一个 C\C++ 库)和框架。然后使用生成的框架调用xcodebuild -framework <path-to-ios-framework>.framework -framework <path-to-ios-simulator-framework>.framework -output <output-path>.xcframework. 我看到这会生成包含 iOS 和模拟器的正确 xcframework,到目前为止一切都很好。

一旦构建了 xcframework,我将包含在我的 Objective-c 应用程序的 Xcode 项目中,并在通过 Xcode 在设备上运行之前开始构建。这再次没有问题。如果我为模拟器构建,它构建得很好,但是在启动应用程序时,再次通过 Xcode,我EXC_BAD_ACCESS在 Thread 1 上得到一个,堆栈跟踪中的唯一项目是memcpyand _dyld_start。如果我尝试继续,我会得到一个SIGKILL唯一的输出,看起来像是找不到库@rpath/framework.framework/framework。如果我在模拟器上运行应用程序而不通过 Xcode,应用程序运行良好。

我的总体问题是为什么通过 Xcode 在模拟器上运行会产生这种崩溃以及可以做些什么来解决它。在网上寻找答案让我陷入了死胡同。我正在使用运行 iOS 14.4 的第 8 代 iPad 模拟器运行 Xcode 12.4。操作系统是 Big Sur 11.2.1。另一个注意事项是,在实际应用程序中包含 xcframework 后,我必须在 Release 和 Debug 配置中为 iphoneos 和 iphonesimulator 指定 HEADER_SEARCH_PATHS,否则应用程序无法编译。

0 投票
2 回答
593 浏览

swift - 无法使用包含二进制目标 (xcframework) 的 Swift 包归档项目

我的项目包含一个包含二进制目标的 Swift 包。通常,项目编译并正常工作,但是当我尝试归档项目时出现问题,我得到一个编译器错误说No such module 'MyFramework'.
Swift 包如下所示:

我尝试了许多解决方案,其中包括来自 Apple Developer 论坛的建议,我将框架添加到products另一个库中,然后在应用程序(项目/客户端)端添加了框架,这使它成功存档,但是当我尝试将存档上传到 App Store,但出现错误提示Found an unexpected Mach-O header code: 0x72613c21
现在,我主要在 Swift 论坛上尝试关注其他解决方案,但它们似乎都不适合我或不够清晰。
据我所知,这是一个Swift Bug,但我想知道现在是否有任何解决方法就足够了。

任何帮助将不胜感激。提前致谢!

0 投票
1 回答
960 浏览

ios - 在终端中尝试“xcodebuild 存档”时存档失败

我创建了一个几乎没有 cocoapod 依赖项的框架。当我在添加 pod 文件(是否安装了 pod)后执行“xcodebuild 存档”时,该框架的存档失败。

在正常构建中,它工作正常。没有错误并且构建成功但是当我在终端上执行“xcodebuild archive”时出现以下问题。

下面是我的 xcode 构建存档命令

0 投票
0 回答
408 浏览

swift - Xcode 12.0 - XCFrameworks 在测试目标中不起作用

我对 Xcode 12.0 有疑问。我正在尝试使用 Carthage 切换到 XCFrameworks --use-xcframeworks。Carthage 构建成功,我可以将胖库切换到 XCFrameworks 并使 App 目标构建和运行。问题在于测试。当我添加 Quick、RxTesting 或 RxBlocking 来测试它不构建的目标时,Xcode 看不到符号。我在 RxSwift git 上发现了一个问题:https ://github.com/ReactiveX/RxSwift/issues/2292 也许有人让它工作并成功切换到 XCFrameworks。

0 投票
0 回答
64 浏览

ios - 当两个框架包含与 iOS 中的资源相同的图像时,不从一个框架加载图像

这是我偶然发现的,现在对我来说确实是一个谜。我有两个框架;让我们打电话给他们FrameworkAFrameworkB。我已经构建了它们,并为它们创建了两种格式.framework.xcframework因此我有 4 个框架。它们都具有与框架内的资源相同的图像,我没有单独bundle的资源。在我的应用程序中使用.frameworkakafat binary时,打开我ViewController的 from时FrameworkB,不会加载其图像。我已经检查并获得了 and 的捆绑包和图像的路径FrameworkAFrameworkB它们是:

  • FrameworkA-path/FrameworkA/image.png
  • FrameworkB-path/FrameworkB/image.png

我尝试在我的应用程序中使用它们,这很有效,我可以从 A 和 B 框架加载相同的图像并将它们添加到两个 sampleImageView以检查我是否可以从框架包中加载它们。当我删除FrameworkA时,使用ViewControllerfrom时图像会正确加载FrameworkB。当我删除这两个框架.framework并将框架作为.xcframework格式添加到我的应用程序时,图像的路径完全相同:

  • FrameworkA-path/FrameworkA/image.png
  • FrameworkB-path/FrameworkB/image.png

但是现在,我在里面的图像ViewController,当从 调用它时FrameworkB,就在那里;他们正在按预期填充。如果我将其删除FrameworkA.xcframework并添加为FrameworkA.framework,那么再次,ViewControllers 图像没有按预期填充,它就像有两种.frameworks格式一样。我正在使用 Xcode 12.4 进行构建。你知道在哪里寻找更多,以及尝试什么吗?

0 投票
0 回答
143 浏览

ios - 构建具有通过 podspec 集成的外部依赖项的通用 (FAT) iOS 框架时的位码问题

我的目标是构建一个可以在 iOS 设备和模拟器中使用的通用框架。我希望能够使用 cocoapods 分发这个框架,我也能够成功地做到这一点。

我的框架有一些外部依赖项,主要的是AWSLambda,我包含在我的 podspec 中,这似乎给了我这个问题。

我能够通过手动将框架拖入测试项目或通过可可豆荚安装它来构建我的框架并将其嵌入到测试项目中。在这两种情况下,在设备或模拟器上运行项目都没有问题,一切正常。

但是,当我尝试存档测试项目以将其提交给 TestFlight 时,该过程失败,关键警告是FrameworkName was built without full bitcode.

一个流行的解决方案是将启用位码设置为否,但是我认为这不是该项目的正确解决方案,至少因为我正在构建一个将集成到其他项目并要求客户端应用程序禁用位码的框架似乎不是正确的方法。如果它是一个个人应用程序,我可能会采取这条路线。

所以为了解决这个问题,我从stackoverflow那里得到了一些帮助,这就是我尝试的 这个stackoverflow首先回答

  1. 在框架项目的Build Settings中设置为Other C Flags-fembed-bitcode

  2. 在框架目标的构建设置中添加一个用户定义的标志,其值为BITCODE_GENERATION_MODEbitcode

  3. 在框架项目和目标中,Enable Bitcode都应该设置在Yes

我尝试过在这里重复了类似的答案。

这是我尝试过的另一个答案,该人建议将 Skips Install 设置为 No 并存档框架而不是构建框架。

在尝试独立或组合使用此功能时,我的框架的构建仍然失败,但这一次它不是指我的框架,而是指我的 pod 依赖项 AWSLambda

将此添加到 podfile似乎解决了构建框架的问题,但是我再次面临要求用户将其包含到他们的 podfile 中的挑战,这对我来说并不专业,或者我可能是错的?

我想知道当涉及到依赖项的此类错误时我的选择是什么,有什么办法可以克服这个问题吗?

我不确定这些东西是否可以添加到 podspec 中来克服这些挑战。

我可能不得不在某个地方做出妥协,但如果能就如何解决这个问题获得一些建议会很好。

谢谢

0 投票
0 回答
686 浏览

ios - pod spec lint 验证失败:无法为当前构建架构 (x86_64 i386) 找到匹配的 .xcframework 切片

我已经在 cocoapod 中有我的框架,使用 xcframework,里面有几个框架: ios-arm64 ios-arm64_x86_64-maccatalyst ios-arm64_x86_64-simulator tvos-arm64 tvos-arm64_x86_64-simulator

在我第一次推送时,我只将 s.ios.deployment_target 放在了我的 podspec 中,但忘记了 s.tvos.deployment_target。我编辑 podspec 文件(更新 s.version old 是 1.0.0,new 是 1.0.0-tvOS ,添加 s.tvos.deployment_target),提交并推送到 github,并创建一个与版本同名的标签。

当我尝试使用 pod spec lint 时,它失败并出现以下错误:

除了 podspec,我没有修改任何其他内容。