首页 > 解决方案 > 在 Swift 项目中使用 Objective-C 文件编译

问题描述

我正在使用一个使用混淆的框架。该框架正在使用头文件进行混淆。例如文件:

#define funcOne            JJmYVBhJqZYKCTJJrEsEr
#define funcTwo            zKqquIfbcRKqMhPXl
#define funcThree          pDeUyAXpAircdITBKBZacBzgCyIL
#define funcFour           SUjJeKmteuaFbcZzg

要在“构建设置”下运行它,“其他 C 标志”和“其他 C++ 标志”添加了头文件“ExternalObfuscate.h”

通过这样做,Objective-c 中的项目运行良好。

但问题是我在 swift 中使用项目

我将框架添加到 Swift 项目的步骤是:

我添加“Bridging-Header”并添加头文件

#import "ExternalObfuscate.h"

并将位置添加到“Other C Flags”和“Other C++ Flags”

那没有用,所以我决定将所有定义复制到也不起作用的“Bridging-Header”。

我一直犯的错误是

    Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_funcOne", referenced from:
      objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

目前不知道我能做些什么来解决这个问题,有人有什么建议吗?

标签: swiftcompilation

解决方案


推荐阅读