Ionic - 构建应用程序的IOS版本时出错

时间:2018-03-25 11:24:36

标签: ios cordova ionic-framework

我使用PC和Windows 10开发了整个应用程序。我成功构建了Android版本并将其上传到已经被接受的Play商店。

现在,我正面临着准备iOS版本的挑战,我希望它很简单。然而,经过几个小时,我仍然面临着同样的问题,我不知道,如何解决。运行ionic Cordova build ios,我收到以下错误:

  

(node:1852)UnhandledPromiseRejectionWarning:SyntaxError:预期“/ Begin”,“/ End”,“\”“或[A-Za-z0-9_。]但是找到了”/“。       at peg $ buildStructuredError(/Users/mitja/Projects/oventura/platforms/ios/cordova/node_modules/xcode/lib/parser/pbxproj.js:412:12)       at Object.peg $ parse [as parse](/Users/mitja/Projects/oventura/platforms/ios/cordova/node_modules/xcode/lib/parser/pbxproj.js:1886:11)       在pbxProject.parseSync(/Users/mitja/Projects/oventura/platforms/ios/cordova/node_modules/xcode/lib/pbxProject.js:46:24)       在Object.parseProjectFile [作为解析](/Users/mitja/Projects/oventura/platforms/ios/cordova/lib/projectFile.js:41:15)       在updateFileResources(/Users/mitja/Projects/oventura/platforms/ios/cordova/lib/prepare.js:480:33)       at /Users/mitja/Projects/oventura/platforms/ios/cordova/lib/prepare.js:65:13       在_fulfilled(/Users/mitja/Projects/oventura/platforms/ios/cordova/node_modules/q/q.js:854:54)       at self.promiseDispatch.done(/Users/mitja/Projects/oventura/platforms/ios/cordova/node_modules/q/q.js:883:30)       在Promise.promise.promiseDispatch(/Users/mitja/Projects/oventura/platforms/ios/cordova/node_modules/q/q.js:816:13)       at /Users/mitja/Projects/oventura/platforms/ios/cordova/node_modules/q/q.js:570:49(节点:1852)       UnhandledPromiseRejectionWarning:未处理的承诺拒绝。       这个错误源于在没有catch块的情况下抛出异步函数,       或拒绝未使用.catch()处理的承诺。 (拒绝ID:1)       (节点:1852)[DEP0018]弃用警告:不推荐使用未处理的拒绝承诺。       将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。

我不知道我的应用程序的哪个文件或哪个部分导致错误,但我知道创建一个新项目并构建它在那里工作得很好,所以肯定是我们项目中的东西(在Windows上构建正常对于Android)。

这是我们的插件列表:

"cordova-plugin-statusbar"
"cordova-plugin-whitelist"
"cordova-plugin-device"
"cordova-plugin-splashscreen"
"cordova-plugin-ionic-webview"
"cordova-plugin-ionic-keyboard"
"cordova-plugin-datepicker"
"cordova-plugin-braintree"
"uk.co.workingedge.phonegap.plugin.launchnavigator"
"mx.ferreyra.callnumber"

对于Braintree,我必须执行npm install plist和npm安装Xcode,如插件github repo中所述,这样就完成了。

那么,可能导致错误的原因是什么?我可以尝试以某种方式成功构建iOS版本?

2 个答案:

答案 0 :(得分:1)

我忘了更新答案,但是答案就在这里。所以问题是,正如已经发现的,braintree的插件。要使其真正起作用,您必须使用官方插件的fork版本:

ionic cordova platform remove ios
ionic cordova plugin add https://github.com/dpa99c/cordova-plugin-braintree
ionic cordova platform add ios

答案 1 :(得分:0)

将地理位置代码放入

    this.platform.ready().then(() => {
  this.geolocation.getCurrentPosition().then((resp) => {
      console.log(resp.coords.latitude);
      console.log(resp.coords.longitude);

})