You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在XCFramework的Swift框架中无法访问Objective-C类的问题求助

问题排查与解决方案

核心原因

Objective-C类未被正确暴露到XCFramework的公共接口中,导致外部项目无法访问。

具体修复步骤

1. 调整头文件可见性

  • 在Swift Framework的Build Phases → Headers面板中,将FingerprintSDKWrapper.h从Project栏拖拽到Public栏。只有标记为Public的头文件才会被纳入XCFramework的对外接口。
  • 若手动管理module.modulemap,确保添加公共头声明:
    framework module FingerprintSDK {
      umbrella header "FingerprintSDK.h"
    
      export *
      module * { export * }
    
      header "FingerprintSDKWrapper.h"
    }
    

2. 验证框架编译设置

  • 确认框架Build Settings中:
    • Defines Module设为YES
    • Module Name与框架名称(如FingerprintSDK)完全一致
    • 开启BUILD_LIBRARY_FOR_DISTRIBUTION=YES(这是XCFramework正确分发公共接口的必要参数)

3. 重新生成XCFramework

执行打包命令时务必包含所有目标架构,并带上关键编译参数:

# 打包真机架构
xcodebuild archive -scheme FingerprintSDK -destination "generic/platform=iOS" -archivePath "./build/FingerprintSDK-iOS.xcarchive" SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# 打包模拟器架构
xcodebuild archive -scheme FingerprintSDK -destination "generic/platform=iOS Simulator" -archivePath "./build/FingerprintSDK-iOSSimulator.xcarchive" SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# 合并为XCFramework
xcodebuild -create-xcframework -framework ./build/FingerprintSDK-iOS.xcarchive/Products/Library/Frameworks/FingerprintSDK.framework -framework ./build/FingerprintSDK-iOSSimulator.xcarchive/Products/Library/Frameworks/FingerprintSDK.framework -output ./build/FingerprintSDK.xcframework

4. 外部项目导入验证

  • 在Objective-C项目中,直接导入框架的 umbrella header 或单独导入包装器头文件:
    #import <FingerprintSDK/FingerprintSDK.h>
    // 或
    #import <FingerprintSDK/FingerprintSDKWrapper.h>
    
  • 若仍无法访问,清理项目缓存(Command+Shift+K),重启Xcode后重新导入XCFramework。

5. 修正代码拼写错误

你的代码中compeltion为拼写错误,需修正为completion,否则会导致外部调用时出现方法找不到的问题:

- (void)scanFingerprintWithKeywindow:(UIWindow *)window completion:(void (^)(NSArray<Images *> *resultArray))completion;

内容的提问来源于stack exchange,提问作者Altaf Rehman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:22:11