ios - Ionic 应用程序使用 Ionic serve 加载,但不使用 Xcode
问题描述
我目前遇到了与我的 Ionic 项目相关的问题。
我在 GitHub 上有一个 Ionic 项目,过去几周我一直在做这个项目,我有一些 Cordova 插件作为项目的一部分。
从 GitHub 下载项目时,我可以毫无问题地使用 Ionic Serve 运行该应用程序。但是,当尝试将项目设置为在本地设备上运行 xCode 时,我遇到了许多错误
一些包括:
- 运行 ionic 'cordova platform add ios' 时出现以下错误
错误:无法从“ios”安装,因为它不包含 package.json 文件。
- 尝试运行“离子科尔多瓦运行 ios -l --external”时
错误:错误:以 NSException 类型的未捕获异常终止
我还没有尝试将我的代码转移到一个新的 Ionic 项目中,因为我希望看看我的问题是否可以轻松解决。
解决方案
我想到了。你有与我在平台上遇到的完全相同的问题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用作文件夹。
解决方案
解决方法是简单地删除项目中的任何ios
或android
目录root
。
错误将消失,您将能够再次添加平台。
关于您在帖子中提供的 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
希望这有帮助!
推荐阅读
- azure - 将平面文件导入 Azure DevOps 源代码控制
- python - 我可以使用 Tkinter 文件对话框保存 Pandas DataFrame 吗?
- javascript - 突出显示 HTML 页面中的重复单词
- google-apps-script - Apps 脚本将新行和值插入到 Google 表格中。但是,如果您提交太快,它会以某种方式跳过行
- c# - 在工具栏中的调试按钮附近添加一个扩展按钮
- r - 如何使用 highchart() 和列表更正空白绘图区域
- wordpress - Woocommerce 产品的 WP_Query 中的 Orderby 价格
- discord.js - 如何禁止在某些角色上使用命令
- r - R包'TranslateR'不显示翻译结果(2)
- reactjs - 将 React、Material-UI 功能组件转换为类组件时出现问题