xcode - Meteor 1.5.2 ios模拟器问题,typeError : Cannot read property 'replace' of undefined

标签 xcode meteor ios-simulator

我使用的是 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 的答案:

https://github.com/meteor/meteor/issues/9098

关于xcode - Meteor 1.5.2 ios模拟器问题,typeError : Cannot read property 'replace' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46254340/

相关文章:

c++ - 程序 "EXC_BAD_ACCESS"

javascript - 如何 react 性地渲染你自己的对象实例? (不是游标对象)

javascript - 如何正确设置多个字段 $min

python - 阿皮姆 : Getting exception while running tests

iphone - Xcode,iPhone : How to detect simulator target at compile time?

ios - 模拟器在第二次运行时显示黑屏

ios - 使图像从左向右移出屏幕

ios - UIDocumentInteractionController 不显示基于 UTI 的应用程序

ios - Swift 中的自定义导航栏

jquery - 当数据库发生变化时手动渲染 meteor 模板