Adding XCFramework to framework project gives error: Include of non-modular header inside framework module
Adding XCFramework to framework project gives error: Include of non-modular header inside framework module
我们已经在 iOS 应用程序中成功使用了 ACRCloud iOS SDK。您只需下载它,将他们的 XCFramework 添加到您的项目中,然后将以下内容添加到您的桥接 header:
#import "ACRCloudConfig.h"
#import “ACRCloudRecognition.h"
我们现在需要将使用 ACRCloud 的代码移动到一个框架中。我收到一个错误。这就是我所做的:
- 在 Xcode select 文件 > 新建 > 项目 > iOS > 框架
- 将语言设置为 Swift 并创建它
- 将 ACRCloudSDK.xcframework 拖放到项目中
- 在 MyFramework.h 文件中,添加上面的导入语句 - 我知道框架不支持桥接 header,所以这是应该添加的位置
- 在新的 Swift 文件中添加测试 class - 似乎这是必需的
class TestClass {
var acrClient: ACRCloudRecognition?
}
- 使用命令 B 构建框架
结果:我收到以下错误:
/Users/Admin/Downloads/MyFramework/MyFramework/MyFramework.h:19:9:
Include of non-modular header inside framework module
'MyFramework':
'/Users/Admin/Library/Developer/Xcode/DerivedData/MyFramework-gcmepfcyafmmyugjhujjgyybneuo/Build/Products/Debug-iphonesimulator/include/ACRCloudRecognition.h’
Could not build Objective-C module ‘MyFramework'
我确认 MyFramework.h 文件在构建阶段 > Headers > Public(项目中没有任何内容)。我还尝试将 Allow Non-modular Includes In Framework Modules 更改为 Yes。使这项工作需要什么?谢谢!
ACRCloud 的工作人员完成了这项工作。这是我必须做的:
- 在 Xcode select 文件 > 新建 > 项目 > iOS > 框架
- 将语言设置为 Swift 并创建它
- 将 ACRCloudSDK.xcframework 拖放到项目中
- 在 Finder 中,打开 xcframework > ios-arm64_armv7 > Headers 并将这两个文件与 xcframework
一起拖放到您的项目中
- 在MyFramework.h文件中,导入这两个头文件
#import "ACRCloudConfig.h"
#import "ACRCloudRecognition.h"
- 在你的框架目标的构建阶段 > Link Binary With Libraries,确保 ACRCloudSDK.xcframework 是必需的
- 展开 Build Phases 中的 Headers 部分并将头文件从 Project 移动到 Public
您现在应该能够毫无错误地构建框架并毫无问题地使用 ACRCloudRecognition。
我们已经在 iOS 应用程序中成功使用了 ACRCloud iOS SDK。您只需下载它,将他们的 XCFramework 添加到您的项目中,然后将以下内容添加到您的桥接 header:
#import "ACRCloudConfig.h"
#import “ACRCloudRecognition.h"
我们现在需要将使用 ACRCloud 的代码移动到一个框架中。我收到一个错误。这就是我所做的:
- 在 Xcode select 文件 > 新建 > 项目 > iOS > 框架
- 将语言设置为 Swift 并创建它
- 将 ACRCloudSDK.xcframework 拖放到项目中
- 在 MyFramework.h 文件中,添加上面的导入语句 - 我知道框架不支持桥接 header,所以这是应该添加的位置
- 在新的 Swift 文件中添加测试 class - 似乎这是必需的
class TestClass {
var acrClient: ACRCloudRecognition?
}
- 使用命令 B 构建框架
结果:我收到以下错误:
/Users/Admin/Downloads/MyFramework/MyFramework/MyFramework.h:19:9: Include of non-modular header inside framework module 'MyFramework': '/Users/Admin/Library/Developer/Xcode/DerivedData/MyFramework-gcmepfcyafmmyugjhujjgyybneuo/Build/Products/Debug-iphonesimulator/include/ACRCloudRecognition.h’
Could not build Objective-C module ‘MyFramework'
我确认 MyFramework.h 文件在构建阶段 > Headers > Public(项目中没有任何内容)。我还尝试将 Allow Non-modular Includes In Framework Modules 更改为 Yes。使这项工作需要什么?谢谢!
ACRCloud 的工作人员完成了这项工作。这是我必须做的:
- 在 Xcode select 文件 > 新建 > 项目 > iOS > 框架
- 将语言设置为 Swift 并创建它
- 将 ACRCloudSDK.xcframework 拖放到项目中
- 在 Finder 中,打开 xcframework > ios-arm64_armv7 > Headers 并将这两个文件与 xcframework 一起拖放到您的项目中
- 在MyFramework.h文件中,导入这两个头文件
#import "ACRCloudConfig.h"
#import "ACRCloudRecognition.h"
- 在你的框架目标的构建阶段 > Link Binary With Libraries,确保 ACRCloudSDK.xcframework 是必需的
- 展开 Build Phases 中的 Headers 部分并将头文件从 Project 移动到 Public
您现在应该能够毫无错误地构建框架并毫无问题地使用 ACRCloudRecognition。