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



我在使用 J2OBJC 作为内置的内部 Xcode 设置的 Ionic/iOS 项目时遇到了循环依赖问题。

我已经在我的 ionic 项目中设置了我的构建规则和设置,如 J2OBJC 文档中所述。 我已经根据需要添加了库、用户标头和框架搜索路径(首先是应用程序目标,并且还尝试了应用程序目标和工作区(并创建了用户定义的 $J 2OBJC_HOME,并且(这可能不是要求的一部分(我也添加了 $PROJECT_DIR。 我还添加了 java 构建规则

"如果[ !-f "${J2OBJC_HOME}/j2objc" ];然后呼应"J2OBJC_HOME不是 在设置中正确定义.xcconfig,当前设置为 '${J2OBJC_HOME}'";1号出口;FI;"${J2OBJC_HOME}/j2objc" -d ${DERIVED_FILE_DIR} -sourcepath "${PROJECT_DIR}/App" --no-package-directory -use-arc --prefix Flowers=JOE -g ${INPUT_FILE_PATH};">

我已经构建了模拟器和iPhone,并在两者上运行它们,它们似乎正在工作。 但是,当我为项目存档(以便我可以创建 .ipa(时。 我收到循环依赖错误。 我已经尝试了很多事情,例如,项目的新开始,使用不同的URL作为搜索路径,使用递归和非递归,检查了几次文档,查看了论坛,但仍然没有解决方案。 任何想法将不胜感激!

Xcode 无法再处理"标头搜索路径"和"用户标头搜索路径"中的相同标头搜索路径。您可能在这两个中都有"$(J2OBJC_HOME(/包含"。因此,请将其从标题搜索路径中删除,并将其保留在用户标题搜索路径中。

我已经遇到这个循环依赖问题一个半月了。 我几乎尝试了一切.
我到处都看过..并得到了汤姆·鲍尔的 2 个回复。 当涉及到使用该工具从java转换为Objc的大型项目时,xcode不会识别创建的子目录。 我想出最好的解决方法是使用 bash 创建自己的脚本。 我做了一些研究,并弄清楚了如何递归地查找所有 java 文件并将 j2objc 脚本应用于它们,它将在同一目录布局中输出所有 Objc 文件。(为您保留一个漂亮的布局,而不是像 Xcode 上的 j2objc 脚本规则那样凌乱的合二为一文件夹(。

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

!/bin/bash

清除目标 C 文件夹

RM -RF/ObjC_Output

移入 Java 文件夹

cd 爪哇

运行 j2objc 并将所有内容输出到 ObjC 中

J2objc -d ../ObjC_Output $(查找 . -名称"*.java"(

跳出 Java 文件夹

光盘..

删除以前的组织

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

光盘到ObjC_Output

将新的 ObjC 项目文件复制到 XCode 项目中。

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 脚本。只需确保像往常一样包含所有默认链接器路径、库搜索路径和用户标头搜索路径(如 j2objc 文档中所示(。

我不得不为这个解决方案拔掉我的头发。因此,如果需要,请随时寻求帮助。

最新更新