swift - 在 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)
目前不知道我能做些什么来解决这个问题,有人有什么建议吗?
解决方案
推荐阅读
- ruby-on-rails - 为什么 Ruby on Rails 执行“SELECT 1 AS one”查询?
- angular - 类型 'Year' 不能分配给类型 'Year[]'。“年份”类型中缺少属性“包含”
- java - 如何使用 IDE 在 Java 中快速运行静态代码片段?
- css - 流入视野(不懂专业术语)
- ios - 无法覆盖超类中的方法
- android - Room - 后台慢查询
- php - php找到正确的最接近的词
- web-crawler - 带有 SQL 外部模块的 Stormcrawl 在爬虫时获取 ParseFilters 异常
- jspdf - jsPDF 和 jsPDF 自动表格 - 高度问题
- php - 命令行中的PHP文件路径不同