我使用的是 Xcode 8.3.3 和 OS X 10.12.6
全新安装meteor 15.2。
基本上,我刚刚使用meteor create创建了一个基本应用程序 它促使我更新到meteor 1.5.2,尽管它在meteor 1.4.3 上工作得很好,但我还是更新了。 当我在为两个版本添加平台后尝试运行meteor run ios时,它给了我1.5.2的以下错误
meteor 运行 ios 出现错误。
=> 应用程序运行于:http://localhost:3000/ => 执行 Cordova 命令时出错:
使用选项 --emulator 运行适用于 iOS 平台的 Cordova 应用程序时:
Error: Command failed: /Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/run --emulator TypeError: Cannot read property ‘replace’ of undefined at remove (/Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/node_modules/ios-sim/src/lib.js:282:70) at Array.forEach (native) at Object.lib.getdevicetypes (/Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/node_modules/ios-sim/src/lib.js:292:22) at Object.listEmulatorImages [as run] (/Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/lib/list-emulator-images:34:29) at deployToSim (/Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/lib/run.js:173:50) at /Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/lib/run.js:115:20 at _fulfilled (/Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/node_modules/q/q.js:834:54) at self.promiseDispatch.done (/Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/node_modules/q/q.js:863:30) at Promise.promise.promiseDispatch (/Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/node_modules/q/q.js:796:13) at /Users/{$USER}/Development/webdev/simple-todos-react/.meteor/local/cordova-build/platforms/ios/cordova/node_modules/q/q.js:604:44 at ChildProcess.exitCallback (/tools/utils/processes.js:151:23) at emitTwo (events.js:87:13) at ChildProcess.emit (events.js:172:7) at Process.ChildProcess._handle.onexit (internal/child_process.js:211:12) => awaited here: at Function.Promise.await (/Users/{$USER}/.meteor/packages/templating-compiler/.1.3.2.qn524o++os+web.browser+web.cordova/plugin.compileTemplatesBatch.os/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:35:12) at CordovaProject.runCommands (/tools/cordova/project.js:715:22) at CordovaProject.run$ (/tools/cordova/project.js:261:10) at tryCatch (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:63:40) at GeneratorFunctionPrototype.invoke [as _invoke] (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:337:22) at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:96:21) at tryCatch (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:63:40) at invoke (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:139:20) at /Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:184:11 at callInvokeWithMethodAndArg (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:183:16) at AsyncIterator.enqueue (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:206:13) at AsyncIterator.prototype.(anonymous function) [as next] (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:96:21) at Object.runtime.async (/Users/{$USER}/.meteor/packages/meteor-tool/.1.5.2.9i7mdi++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/regenerator-runtime/runtime.js:226:14) at /Users/{$USER}/.meteor/packages/templating-compiler/.1.3.2.qn524o++os+web.browser+web.cordova/plugin.compileTemplatesBatch.os/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:32:39
/Users/{$USER}/.meteor/packages/templating-compiler/.1.3.2.qn524o++os+web.browser+web.cordova/plugin.compileTemplatesBatch.os/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:190 throw error; ^ undefined => awaited here: at Function.Promise.await (/Users/{$USER}/.meteor/packages/templating-compiler/.1.3.2.qn524o++os+web.browser+web.cordova/plugin.compileTemplatesBatch.os/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:35:12) at /tools/cordova/runner.js:98:17 at /tools/utils/buildmessage.js:271:13 at [object Object]..extend.withValue (/tools/utils/fiber-helpers.js:89:14) at /tools/utils/buildmessage.js:264:29 at [object Object]..extend.withValue (/tools/utils/fiber-helpers.js:89:14) at /tools/utils/buildmessage.js:262:18 at [object Object]..extend.withValue (/tools/utils/fiber-helpers.js:89:14) at /tools/utils/buildmessage.js:253:23 at [object Object]..extend.withValue (/tools/utils/fiber-helpers.js:89:14) at Object.capture (/tools/utils/buildmessage.js:252:19) at CordovaRunner.startRunTargets (/tools/cordova/runner.js:97:37) at [object Object]._.extend.runOnce (/tools/runners/run-app.js:772:21) at [object Object]..extend._fiber (/tools/runners/run-app.js:885:28) at /tools/runners/run-app.js:412:12
cat .meteor/local/cordova-build/platforms/ios/CordovaLib/VERSION gives me 4.4.0
因此该 API 在 iOS 9.0 api 上已弃用
将 cordova 更新到最新版本以与 iOS 10(可能还有 iOS 11 周后)配合使用的正确方法是什么?
最佳答案
这是(或曾经是)Meteor 用于运行 iOS 模拟器的 ios-sim 包中的一个错误。在 Meteor 中更新此依赖项之前,您可以通过手动更新项目文件夹中的 ios-sim 来解决该问题,这应该可行:
cd .meteor/local/cordova-build/platforms/ios/cordova
meteor npm install ios-sim@latest
您可以在下面的 github issuesb 上查看 klaussner 的答案:
关于xcode - Meteor 1.5.2 ios模拟器问题,typeError : Cannot read property 'replace' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46254340/