使用cordova构建ios时出错
Posted
技术标签:
【中文标题】使用cordova构建ios时出错【英文标题】:Error building ios with cordova 【发布时间】:2016-07-27 14:17:34 【问题描述】:我在使用 cordova 构建 ios 平台时遇到问题。我拥有应用程序和设备的所有证书,但是当我尝试在我的 ios 设备中运行时,执行 ionic run ios,控制台返回此错误:
Error: Source path does not exist: resources/ios/icon/icon-40@3x.png
这个路径写在config.xml文件中。
我尝试在 xCode 中运行它,但问题是:
Cordova/CDVViewController.h not found
我阅读了很多可能的解决方案,但任何一个都适合我。
我的xCode版本是7.3.1,cordova版本是6.3.0,cordova ios版本是4.2.0。
【问题讨论】:
您能否展示一些您的config.xml
和index.html
的代码示例?还有你在命令行上遇到的确切错误?
关于第二个问题,请参考这个answer
【参考方案1】:
如果您缺少图标,您可以运行命令
ionic resources --icon
这将生成具有在任何设备上运行所需的像素的所有图标。
要在设备上进行模拟,您首先需要
ionic build ios
然后
ionic simulate ios
更新 xcode 也是一个好习惯。
如果您仍然收到错误,您可以粘贴此行
"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
在构建设置 > 标题搜索路径上。 不要删除类似的行,只需将其添加到末尾即可。
【讨论】:
感谢您的回答,但我无法构建 ios,因为它显示相同的错误。现在在 xCode 而不是 CDVViewController 错误现在我有 CDVAppDelegate.h 错误。 您是否尝试将我提供给您的行粘贴到标题搜索路径中?几天前我遇到了这个问题,并且解决了它。 是的,我做到了!它只解决了一个错误,现在我遇到了另一个错误 非常感谢@Joseph Ocasio! 这对我没有任何作用【参考方案2】:更新 - 03-08-2017
> ionic cordova resources
旧 CLI 命令:
我遇到了同样的错误,在重新运行 ionic resources
后它消失了。
问题是我在图标的路径中有 Windows 样式的斜杠(反斜杠),即我遇到的错误是这样的:
Error: Source path does not exist: resources\ios\icon\icon-40.png
因此,将反斜杠转换为斜杠为我解决了这个问题。
更新: 关于您的第二个错误,它帮助我重置了状态:
ionic state reset
在运行此命令之前,请确保您的package.json
中的cordovaPlatforms
下列出了ios
。然后ionic
会自动重新下载您的插件并准备好构建。
希望对您有所帮助。保重!
【讨论】:
这不是问题的答案,因为 OP 实际上缺少 iPhone 6 plus 图标,但它确实帮助了我!很容易错过这个。【参考方案3】:我只对其他图像有同样的错误:
源码路径不存在:resources/ios/icon/icon-40@2x.png
升级到Cordova 6.3.0
后发生这种情况,我已经解决了降级Cordova
的问题。
现在快速修复:
npm uninstall -g cordova
npm install -g cordova@6.2.0
【讨论】:
注意:对于那些无法更改其cordova
版本的人(例如因为使用租用的 Mac),请查看我的答案。它也适用于Cordova 6.3.0
。
您好我有同样的错误,我很好奇为什么使用更高版本的 Cordova 会导致这个问题?或者如果我想使用 > Cordova 6.3.1,我该怎么做?
你到底是怎么找到这个解决方案的??无论如何,它对我有用。谢谢。【参考方案4】:
只需使用: 移除平台
cordova platform remove ios
并用旧的添加ios平台
cordova platform add ios@4.0.0 --save
它对我有用..
@4.0.0 会自动选择以前的版本
【讨论】:
【参考方案5】:我尝试了几次,终于成功了。
-
使用
ionic resources --icon
,可能会遇到新问题
“由于错误无法生成图像无法上传源图像:错误:读取ECONNRESET”
别着急,以后试试
-
使用
ionic platform remove ios
执行成功时
使用ionic platform add ios
不要使用ionic state reset
【讨论】:
ionic resources --icon
又出了问题错误:源路径不存在:resources\ios\splash\Default~iphone.png
任何不使用ionic state reset
的具体原因?【参考方案6】:
尝试将config.xml中的“\”替换为“/”(反斜杠和斜杠)。
如果您在 Windows 系统上创建项目并移动到 macOS 进行 iOS 编译,它仍然具有 Windows URI 格式。
【讨论】:
【参考方案7】:我已经多次发现这个问题,并且提供的一些答案直到今天都运行良好,当时没有人工作。
我的环境:MacOS high Sierra 10.13、ionic cli 3.18.0 和 cordova 7.1.0。
我的问题是,如果我运行ionic cordova prepare
,它会失败,说我需要添加一个平台,如果我使用ionic cordova platform add ios
添加一个平台,它会失败,并出现答案中指定的错误:
Error: Source path does not exist: resources/ios/icon/icon-40@3x.png
解决我的问题的是手动创建平台文件夹:mkdir platforms
。创建此文件夹后,添加平台照常工作。
我希望它可以帮助那里的人。
【讨论】:
【参考方案8】:我遇到了与 cordova-ios@~4.5.1
类似的问题ionic cordova build ios
> cordova build ios
Error: Source path does not exist: resources\android\icon\drawable-xhdpi-icon.png
[ERROR] An error occurred while running cordova build ios (exit code 1).
ionic cordova 平台添加 ios
> cordova platform add ios --save
Using cordova-fetch for cordova-ios@~4.5.1
Adding ios project...
Creating Cordova project for the iOS platform:
Path: platforms/ios
Package: -
Name: -
iOS project created with cordova-ios@4.5.4
Error: Source path does not exist: resources\android\icon\drawable-xhdpi-icon.png
我删除了ios平台
ionic cordova platform remove ios
并用旧的添加ios平台
ionic cordova platform add ios@4.0.0
这对我有用,正在等待 Cordova 更新 :)
【讨论】:
【参考方案9】:这是猫捉老鼠的问题,
-
图标资源未构建,因为未添加平台和
无法添加平台,因为图标资源不存在
ionic/cordova 非常不稳定,在 CI 管道中使用是一场噩梦。
这使 CI 管道不断崩溃。只需继续删除和添加 android/ios 平台并使用 ionic cordova resources --force
构建资源
【讨论】:
【参考方案10】:运行这些命令为我解决了这个问题:
离子平台 rm ios
离子资源
离子平台添加ios
【讨论】:
【参考方案11】:我不得不从任何其他项目 repo 手动复制文件 比如https://github.com/sphilee/eTAS_GPS/tree/master/resources/ios
【讨论】:
【参考方案12】:它说资源目录只包含空文件夹。下载这个 repo (https://github.com/ionic-team/ionic2-app-base/tree/master/resources) 并替换资源目录
再次运行“离子科尔多瓦资源”。
【讨论】:
【参考方案13】:你只需要更新cordova来修复这个错误:更新cordova运行下面的命令
$sudo npm install -g cordova@6.2.0
一旦你更新了命令下面的cordova类型来删除平台
$sudo ionic cordova platform rm ios --save
然后使用以下命令再次添加平台
$sudo ionic cordova platform add ios --save
希望对你有所帮助。
【讨论】:
【参考方案14】:我遇到了同样的问题:
错误:源路径不存在:resources/ios/icon/icon-40@3x.png
看起来相对路径是对 config.xml 的引用。如果资源文件夹存在于“www”内,那么您可能需要更新相对路径。
我可以通过更新“www/resources/...”的相对路径来解决这个问题。
【讨论】:
【参考方案15】:您的资源可能尚未运行。
运行:
npm i -g cordova-ionic platform rm ios
ionic platform rm ios // You want to do this just so when you recreate you have necessary resouces
ionic cordova resources
ionic cordova build --release <ios/android>
这个解决方案应该有更多的答案,因为 ionic 是一个基于 npm 的项目,这个命令将安装必要的库。
【讨论】:
【参考方案16】:我使用了无脑方法,但它有效。我用他们要求的名称临时添加了资源。
就像我复制并粘贴图像 icon-20 copy.png
然后将其重命名为我需要的资源,例如 icon-small@2x.png
【讨论】:
【参考方案17】:使用
离子科尔多瓦资源--icon
如果需要权限,请使用 sudo
sudo ionic cordova 资源 --icon
它将为 iOS 生成 28 个资源,为 Android 生成 6 个资源。
【讨论】:
【参考方案18】:确保添加: xmlns:cdv="http://cordova.apache.org/ns/1.0
到 config.xml 的小部件部分(在最顶部)
这将添加所有必要的 Cordova 组件。
【讨论】:
以上是关于使用cordova构建ios时出错的主要内容,如果未能解决你的问题,请参考以下文章
添加 cordova-plugin-admobpro 后在 Cordova 本地构建时出错
运行cordova build android时出错(退出代码1)