簡體   English   中英

將 XCFramework 添加到框架項目會出現錯誤:在框架模塊中包含非模塊化 header

[英]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 的代碼移動到一個框架中。 我收到一個錯誤。 這就是我所做的:

  1. 在 Xcode select 文件 > 新建 > 項目 > iOS > 框架
  2. 將語言設置為 Swift 並創建它
  3. 將 ACRCloudSDK.xcframework 拖放到項目中
  4. 在 MyFramework.h 文件中,添加上面的導入語句——我知道框架不支持橋接標頭,所以這是應該添加的位置
  5. 在新的 Swift 文件中添加測試 class - 似乎這是必需的
class TestClass {
    var acrClient: ACRCloudRecognition?
}
  1. 使用命令 B 構建框架

結果:我收到以下錯誤:

/Users/Admin/Downloads/MyFramework/MyFramework/MyFramework.h:19:9: 在框架模塊 'MyFramework' 中包含非模塊化 header: '/Users/Admin/Library/Developer/Xcode/DerivedData/MyFramework-gcmepfcyafmmyugjhujjgyybneuo/構建/產品/調試-iphonesimulator/include/ACRCloudRecognition.h'

無法構建 Objective-C 模塊“MyFramework”

我確認 MyFramework.h 文件位於 Build Phases > Headers > Public(項目中沒有任何內容)。 我還嘗試將允許非模塊化包含在框架模塊中更改為是。 使這項工作需要什么? 謝謝!

ACRCloud 的工作人員讓這項工作成功了。 這是我必須做的:

  1. 在 Xcode select 文件 > 新建 > 項目 > iOS > 框架
  2. 將語言設置為 Swift 並創建它
  3. 將 ACRCloudSDK.xcframework 拖放到項目中
  4. 在 Finder 中,打開 xcframework > ios-arm64_armv7 > Headers 並將這兩個文件與 xcframework 一起拖放到您的項目中
  5. 在 MyFramework.h 文件中,導入這兩個 header 文件
#import "ACRCloudConfig.h"
#import "ACRCloudRecognition.h"
  1. 在您的框架目標的構建階段 > 將二進制文件與庫鏈接,確保需要 ACRCloudSDK.xcframework
  2. 展開 Build Phases 中的 Headers 部分並將 header 文件從 Project 移動到 Public

您現在應該能夠毫無錯誤地構建框架並毫無問題地使用 ACRCloudRecognition。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM