我一直在试图解决这个问题,但是隧道尽头似乎没有任何亮点,因此请在这里尝试...希望您能提供帮助。
我有一个离子项目。通过ionic serve
运行可以为我带来预期的结果,在那里没有问题。
但是,当运行诸如ionic cordova run ios -lc
之类的命令时,我收到一个中断构建过程的错误消息。我收到的错误如下:
[cordova] error: archive not found at path '/Users/path-to-app/platforms/ios/demoapp.xcarchive'
[cordova] ** EXPORT FAILED **
[cordova]
[cordova] (node:5866) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error code 65 for command: xcodebuild with args: -exportArchive,-archivePath,demoapp.xcarchive,-exportOptionsPlist,/Users/path-to-app/platforms/ios/exportOptions.plist,-exportPath,/Users/path-to-app/platforms/ios/build/device
[cordova] (node:5866) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
我在这里看到2种不同的错误:找不到存档和弃用问题。 不知道哪个人破坏了构建,但似乎找不到其中任何一个的解决方案。
离子信息:
Ionic:
ionic (Ionic CLI) : 4.1.2
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.0
Cordova:
cordova (Cordova CLI) : 8.0.0
Cordova Platforms : android 7.0.0, browser 5.0.4, ios 4.5.5
Cordova Plugins : no whitelisted plugins (0 plugins total)
System:
Android SDK Tools : 25.1.7 (/Users/Vincent/Library/Android/sdk)
ios-deploy : 1.9.2
NodeJS : v9.1.0 (/usr/local/bin/node)
npm : 6.4.1
OS : macOS High Sierra
Xcode : Xcode 10.0 Build version 10A255
任何帮助将不胜感激!
答案 0 :(得分:93)
当前cordova-ios与Xcode 10不兼容
您可以尝试通过将Xcode 10添加到您的build.json文件中来禁用Xcode 10使用的新构建系统,并使用旧的系统。
"buildFlag": [
"-UseModernBuildSystem=0"
]
或将--buildFlag="-UseModernBuildSystem=0"
添加到构建命令
完整命令应为cordova build ios --buildFlag="-UseModernBuildSystem=0"
。
或者对于离子ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
答案 1 :(得分:25)
除了@jcesarmobile给出的上述答案外,另一种解决方案是通过执行以下命令,使用Ionic CLI构建应用程序:
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
根据ionic build
命令的documentation,要将其他选项传递给Cordova CLI,您应该在Ionic CLI参数后面使用--
分隔符。通过Ionic CLI而非Cordova CLI执行build
命令还将建立Web资源并在Cordova仅构建应用程序之前提供友好的检查。
答案 2 :(得分:19)
一个有效的build.json示例(放在您的cordova / ionic项目根目录中)如下:
{
"ios": {
"debug": {
"buildFlag": [
"-UseModernBuildSystem=0"
]
},
"release": {
"buildFlag": [
"-UseModernBuildSystem=0"
]
}
}
}
有关build.json的更多参数,另请参阅cordova doc:https://cordova.apache.org/docs/en/latest/guide/platforms/ios/
答案 3 :(得分:1)
jcesarmobile 建议的命令对我不起作用,但对我有用
cordova build ios --buildFlag="-UseModernBuildSystem=0"
(无离子)成功完成了构建。
在那之后,我已经能够进行离子科尔多瓦构建ios而没有任何问题。 (即使没有buildFlag)。我不是这方面的专家,实际上,不包含离子型大声笑是一个错误。因此,尽管一切似乎都正常,但我不确定第一次仅使用cordova进行构建是否有任何缺点。也许有人可以在评论中发表一些看法
答案 4 :(得分:1)
希望这还是有帮助的。
是时候准备在XCODE中打开项目了。 但是,Ionic-Cordova不支持XCODE的新构建系统。因此,必须为旧版构建系统准备该项目。陷阱2。 重要!断开与Mac相连的iPhone或iPad设备的连接,否则以下命令将无法使用!!!!陷阱3。
ionic cordova build ios --prod --buildFlag='-UseModernBuildSystem=0'
恭喜!您的MyApp.xcodeproj(ect)文件已准备就绪。上传IPA差不多了一半。 只需双击Myapp.xcodeproj文件或通过XCODE打开它。
XCODE错误和Cordova无法正确支持新的建筑系统会导致所有这些问题。我做了full guide,展示了潜伏小时后如何修复它们。希望对您有帮助!
答案 5 :(得分:0)
就我而言,我必须在 XCODE 10.2.1
中指定快速编译器版本和工作区设置注意:在我的项目中,我已经安装了Onesignal插件
首先,我指定了swift编译器版本。
然后更改工作区设置
毕竟尝试在终端中使用以下命令重建
ionic cordova build ios
答案 6 :(得分:0)
试试下面的命令:
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"