我使用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版本?
答案 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);
})