循环依赖错误 J2OBJC 存档构建?

Cyclic dependency error J2OBJC archive build?

我的 Ionic/iOS 项目使用 J2OBJC 作为内置 Xcode 设置时出现循环依赖问题。

我已经按照 J2OBJC 文档中的说明在我的离子项目中设置了构建规则和设置。我已经根据需要添加了库、用户 Header 和框架搜索路径(首先只有应用程序目标,并且还尝试了应用程序目标和工作区)并创建了用户定义的 $J2OBJC_HOME 和(这可能是'要求的一部分)我也加了一个$PROJECT_DIR。我还添加了 java 构建规则

"if [ ! -f "${J2OBJC_HOME}/j2objc" ]; then echo "J2OBJC_HOME not correctly defined in Settings.xcconfig, currently set to '${J2OBJC_HOME}'"; exit 1; fi; "${J2OBJC_HOME}/j2objc" -d ${DERIVED_FILE_DIR} -sourcepath "${PROJECT_DIR}/App" --no-package-directories -use-arc --prefix Flowers=JOE -g ${INPUT_FILE_PATH};"

我已经构建了模拟器和 iPhone 以及 运行 它们,它们似乎都在工作。但是,当我去存档(这样我就可以创建 .ipa)的项目。我收到循环依赖错误。我尝试了很多事情,例如,重新启动项目、使用不同的 URL 搜索路径、使用递归和 non-recursive、检查文档几次、查看论坛但仍然没有解决方案。任何想法将不胜感激!

Xcode 无法再处理 Header 搜索路径和用户 Header 搜索路径中相同的 header 搜索路径。您可能在这两个中都有“$(J2OBJC_HOME)/include”。因此,将其从 Header 搜索路径中删除并保留在用户 Header 搜索路径中。

这个循环依赖问题已经困扰我一个半月了。我几乎什么都试过了。
我到处都看了……并从 Tom Ball 那里得到了 2 条回复。 java转Objc的大项目用工具转的时候,xcode会认不出做出来的子目录。我发现最好的解决方法是使用 bash 创建您自己的脚本。我做了一些研究,弄清楚了如何递归查找所有 java 文件并将 j2objc 脚本应用于它们,它会在同一目录布局中输出所有 Objc 文件。 (为您保留一个漂亮的布局,而不是像 Xcode 上的 j2objc 脚本规则那样杂乱无章的文件夹)。

我的build.sh文件如下,随意复制-

!/bin/bash

Clean out Objective C folder

rm -rf /ObjC_Output

Move into Java Folder

cd Java

Run j2objc and output everything into ObjC

j2objc -d ../ObjC_Output $(find . -name "*.java")

Jump out of Java folder

cd ..

Delete previous org

rm -rf /Users/me/Projects/project-name/mobile-app-front-end/app/ios/app/app/org

cd to ObjC_Output

Copy new ObjC Project files over to the XCode project..

cp -R ./ObjC_Output/* /Users/me/Projects/project-name/mobile-app-front-end/app/ios/app/app/org

我会自动将我的所有文件复制回我的 Xcode 项目.. 随心所欲。也不要忘记将 j2objc 添加到您的路径中。和 运行 你的脚本 ./builder.sh 在终端..

此外,为了 Xcode 识别您的 objC 项目文件夹,您必须添加 Xcode 项目的顶层目录并使其递归。

在这种情况下,您不需要在 Xcode.在 j2objc 文档中)。

为了这个解决方案,我不得不费尽心思。如果需要,请随时寻求帮助。