1

我在 Angular2 教程中遇到以下错误。TNS Doctor 没问题,那么为什么会出现以下错误?

'tns livesync ios --emulator --watch
Executing before-prepare hook from /Users//Documents/frontend/sample-Groceries/hooks/before-prepare/nativescript-dev-typescript.js
Found peer TypeScript 1.8.10
Project successfully prepared (ios)
Executing before-livesync hook from /Users//Documents/frontend/sample-Groceries/hooks/before-livesync/nativescript-angular-sync .js
Transferring project files...
Successfully transferred all files.
Applying changes...
Successfully synced application org.nativescript.groceries on device D28D29C3-07B6-4B60-B4B0-711475C505DE.
Executing before-watch hook from /Users//Documents/frontend/sample-Groceries/hooks/before-watch/nativescript-dev-typescript.js
Found peer TypeScript 1.8.10
Sep 17 07:34:37 Davids-iMac sampleGroceries[2934]: 1   0x105cd08d7 -[TNSRuntime executeModule:]
Sep 17 07:34:37 Davids-iMac sampleGroceries[2934]: 2   0x10587b6d2 main
Sep 17 07:34:37 Davids-iMac sampleGroceries[2934]: 3   0x109be668d start
Sep 17 07:34:37 Davids-iMac sampleGroceries[2934]: 4   0x1
Sep 17 07:34:37 Davids-iMac sampleGroceries[2934]: file:///app/tns_modules/utils/utils.js:130:72: JS ERROR TypeError: UIDevice.currentDevice is not a function. (In 'UIDevice.currentDevice()', 'UIDevice.currentDevice' is an instance of UIDevice)
Sep 17 07:34:37 Davids-iMac com.apple.CoreSimulator.SimDevice.D28D29C3-07B6-4B60-B4B0-711475C505DE.launchd_sim[2849] (UIKitApplication:org.nativescript.groceries[0xe746][2934]): Service exited due to Segmentation fault: 11
7:34:38 AM - Compilation complete. Watching for file changes.

我正在使用新的 8x Xcode。

4

1 回答 1

5

sample-Groceries 项目的 Dependences 版本将很快更新到最新的 NativeScript 版本,但是您可以打开 package.json 文件并更改以下版本:

tns-ios": {"version": "2.3.0"}

"nativescript-angular": "1.0.0"

"tns-core-modules": "2.3.0".

您还应该确保hooks, node_modules,platforms文件夹已被删除。关于这一点,在 Xcode 8 中,一些方法现在是属性,当在项目中使用本机代码时会导致问题,就像在示例杂货店中一样。作为临时解决方案,您可以替换status-bar-util.tsgrocery-list.component.ts文件中的一些代码。

应用程序/共享/状态栏-util.ts

UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent;用。。。来代替UIApplication.sharedApplication.statusBarStyle = UIStatusBarStyle.LightContent;

应用程序/杂货/杂货清单/杂货清单.component.ts

cell.backgroundColor = UIColor.clearColor();用。。。来代替cell.backgroundColor = UIColor.clearColor;

于 2016-09-17T10:36:20.177 回答