首页 > 解决方案 > Ionic 应用程序使用 Ionic serve 加载,但不使用 Xcode

问题描述

我目前遇到了与我的 Ionic 项目相关的问题。

我在 GitHub 上有一个 Ionic 项目,过去几周我一直在做这个项目,我有一些 Cordova 插件作为项目的一部分。

从 GitHub 下载项目时,我可以毫无问题地使用 Ionic Serve 运行该应用程序。但是,当尝试将项目设置为在本地设备上运行 xCode 时,我遇到了许多错误

一些包括:

  1. 运行 ionic 'cordova platform add ios' 时出现以下错误

错误:无法从“ios”安装,因为它不包含 package.json 文件。

  1. 尝试运行“离子科尔多瓦运行 ios -l --external”时

错误:错误:以 NSException 类型的未捕获异常终止

我还没有尝试将我的代码转移到一个新的 Ionic 项目中,因为我希望看看我的问题是否可以轻松解决。

在此处查看项目代码:https ://github.com/designsheikh/bitsandbobs.git

标签: iosxcodecordovaionic-frameworkcapacitor

解决方案


我想到了。你有与我在平台上遇到的完全相同的问题android
正如我在评论中指出的那样,它确实是由“损坏”的项目架构引起的。

它是如何发生的

最初,我对 cordova 生成的资源有疑问,不知何故没有被复制到android平台目录中。我用 CLI 尝试了很多东西cordova-res,包括使用--copy--ios-project标志来强制复制发生在我选择的目录中。

我无法解决我的问题,然后决定回滚我的所有更改并重新开始一个干净的项目以尝试其他方法。从那时起,我就无法再添加android平台了。每次都会抛出以下错误:

Error: Could not install from "android" as it does not contain a package.json file.

解释

通过我所有的测试,我注意到在使用cordova添加平台或复制资源时,不知何故,它android在错误的目录中创建了平台,在root我的项目而不是platforms文件夹中。这就是问题的来源。

cordova我无法解释,但如果您尝试添加一个平台,同时在项目的根目录下有一个具有此平台名称的文件夹,您每次都会遇到此错误。temp我不知道为什么这会阻止将平台添加到项目中,也许这个文件夹被 CLI用作文件夹。

解决方案

解决方法是简单地删除项目中的任何iosandroid目录root
错误将消失,您将能够再次添加平台。


@CodingJunkie

关于您在帖子中提供的 Github 存储库,ios如果您使用cordova@>=9.0.0.

Using "requireCordovaModule" to load non-cordova module "xcode" is not supported.  
Instead, add this module to your dependencies and use regular "require" to load it.

检查此问题#1033以获取解决方法。但是,不建议直接编辑插件源代码,您可能需要寻找另一个 cordova Firebase 插件。

我还注意到你在你的项目中cordova有点混淆了。 确保使用其中之一以避免潜在的错误。capacitor

希望这有帮助!


推荐阅读