ios - 将 XCFramework 添加到框架项目会出现错误:在框架模块中包含非模块化标头
问题描述
我们已经在我们的 iOS 应用程序中成功使用了ACRCloud iOS SDK。您只需下载它,将他们的 XCFramework 添加到您的项目中,然后将以下内容添加到您的桥接头中:
#import "ACRCloudConfig.h"
#import “ACRCloudRecognition.h"
我们现在需要将使用 ACRCloud 的代码移动到框架中。我收到一个错误。这就是我所做的:
- 在 Xcode 中选择 File > New > Project > iOS > Framework
- 将语言设置为 Swift 并创建它
- 将 ACRCloudSDK.xcframework 拖放到项目中
- 在 MyFramework.h 文件中,添加上面的导入语句 - 我知道框架不支持桥接头,所以这是应该添加它们的位置
- 在新的 Swift 文件中添加一个测试类 - 似乎这是必需的
class TestClass {
var acrClient: ACRCloudRecognition?
}
- 使用命令 B 构建框架
结果:我收到以下错误:
/Users/Admin/Downloads/MyFramework/MyFramework/MyFramework.h:19:9:在框架模块“MyFramework”中包含非模块化标头:“/Users/Admin/Library/Developer/Xcode/DerivedData/MyFramework-gcmepfcyafmmyugjhujjgyybneuo/ Build/Products/Debug-iphonesimulator/include/ACRCloudRecognition.h'</p>
无法构建 Objective-C 模块“MyFramework”
我确认 MyFramework.h 文件位于 Build Phases > Headers > Public 中(项目中没有任何内容)。我还尝试将框架模块中的允许非模块化包含更改为是。完成这项工作需要什么?谢谢!
解决方案
ACRCloud 的人得到了这个工作。这是我必须做的:
- 在 Xcode 中选择 File > New > Project > iOS > Framework
- 将语言设置为 Swift 并创建它
- 将 ACRCloudSDK.xcframework 拖放到项目中
- 在 Finder 中,打开 xcframework > ios-arm64_armv7 > Headers 并将这两个文件拖放到 xcframework 旁边的项目中
- 在 MyFramework.h 文件中,导入这两个头文件
#import "ACRCloudConfig.h"
#import “ACRCloudRecognition.h"
- 在您的框架目标的构建阶段,确保 ACRCloudSDK.xcframework 在 Link Binary With Libraries 中是必需的
- 展开 Build Phases 中的 Headers 部分并将头文件从 Private 移动到 Public
您现在应该能够毫无错误地构建框架并毫无问题地使用 ACRCloudRecognition。
推荐阅读
- python - django 形式的 OnetoOnefield 不起作用。
- excel - 在所有工作表中使用宏
- php - Insightly Modx PHP 集成以在洞察力中创建新联系人
- javascript - fabric.js 用 PNG 模式填充 SVG 或 PNG
- python - 求大幂的个位数
- angular - 如何通过单击相同的 url 来重新初始化或渲染组件?
- raspberry-pi - 进行安装,到临时位置
- android - 成功构建但应用程序不断崩溃 - android studio
- django - DocuSign Python SDK - 检索新生成的文档以进行签名?
- java - 为什么要在构造函数中重命名参数?