我创建了一个带有objectiveC代码的swift框架,由j2objc翻译。
我已经添加了java文件来编译源代码,并使用以下设置:
GENERATED_FILES_DIR =" $ {SRCROOT} /生成";
HEADER_SEARCH_PATHS =" $ {J2OBJC_HOME} /frameworks/JRE.framework/Headers" " $ {GENERATED_FILES_DIR}" " $ {J2OBJC_HOME} /包括" $(继承);
LIBRARY_SEARCH_PATHS = $ {J2OBJC_HOME} / lib;
OTHER_LDFLAGS = -ljre_emul
CLANG_ENABLE_OBJC_ARC =否
我收到了错误:
然后我执行以下操作:
CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
错误仍然存在。
我链接' JRE.framework'并设置HEADER_SEARCH_PATHS
错误仍然存在。
如何解决?
答案 0 :(得分:0)
您还想设置DEFINES_MODULE = NO;
除此之外,您不需要"${J2OBJC_HOME}/include"
中的HEADER_SEARCH_PATHS
,您也可以删除LIBRARY_SEARCH_PATHS = ${J2OBJC_HOME}/lib; OTHER_LDFLAGS = -ljre_emul;
,因为您现在正在使用JRE框架。
如果您正在翻译没有.java
标志的--no-package-directories
来源并且想要保留目录结构,那么您还需要执行以下操作:
Copy Bundle Resources
阶段Public
阶段的Headers
部分Run Scrip
阶段以从.m
目录中删除Headers
个文件:
find "$TARGET_BUILD_DIR/$PUBLIC_HEADERS_FOLDER_PATH" -name "*.m" -exec rm -f {} \;
#include <your-framework-name/path/to/header/Header.h>