如何在 ios 中为 nativescript 应用程序调试构建失败?
Posted
技术标签:
【中文标题】如何在 ios 中为 nativescript 应用程序调试构建失败?【英文标题】:How to debug build faild in ios for nativescript apps? 【发布时间】:2020-05-19 13:43:51 【问题描述】:我刚刚运行tns run ios --emulator
,我得到了这个:
/Users/me/Desktop/proj/projfront/App/platforms/ios/Pods/MBProgressHUD/MBProgressHUD.m:87:34: error: no known class method for selector
'labelColor'
_contentColor = [[UIColor labelColor] colorWithAlphaComponent:0.7f];
^~~~
/Users/me/Desktop/proj/projfront/App/platforms/ios/Pods/MBProgressHUD/MBProgressHUD.m:378:101: error: use of undeclared identifier
'UIActivityIndicatorViewStyleLarge'
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleLarge];
^
/Users/me/Desktop/proj/projfront/App/platforms/ios/Pods/MBProgressHUD/MBProgressHUD.m:1065:32: error: use of undeclared identifier
'UIBlurEffectStyleSystemThickMaterial'
_blurEffectStyle = UIBlurEffectStyleSystemThickMaterial;
^
3 errors generated.
note: Using new build systemnote: Planning buildnote: Constructing build description
* BUILD FAILED *
Unable to apply changes on device: 96EBA70E-38D5-4C6A-B30B-21BECF697C9C. Error is: Command xcodebuild failed with exit code 65.
我不知道如何调试它。它在 android 上构建得很好。 这是我的 package.json:
"nativescript":
"templateVersion": "v2",
"tns-android":
"version": "6.0.0"
,
"tns-ios":
"version": "6.0.1"
,
"dependencies":
"@nativescript/theme": "^2.2.1",
"@nstudio/nativescript-cardview": "^1.0.0",
"@nstudio/nativescript-checkbox": "^1.0.0",
"@nstudio/nativescript-floatingactionbutton": "^2.0.0",
"@nstudio/nativescript-loading-indicator": "^3.0.1",
"axios": "^0.19.2",
"nativescript-exoplayer": "^4.0.2",
"nativescript-iqkeyboardmanager": "^1.5.1",
"nativescript-masked-text-field": "^4.0.3",
"nativescript-plugin-firebase": "^10.3.3",
"nativescript-social-share": "^1.6.0",
"nativescript-ui-autocomplete": "^6.0.0",
"nativescript-vue": "^2.4.0",
"tns-core-modules": "^6.0.0",
"vuex": "^3.1.1"
,
"devDependencies":
"@babel/core": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"babel-loader": "^8.0.2",
"nativescript-dev-webpack": "^1.0.0",
"nativescript-vue-template-compiler": "^2.0.0",
"nativescript-worker-loader": "~0.9.0",
"node-sass": "^4.9.2",
"vue-loader": "^15.4.0"
【问题讨论】:
胡思乱想——像 UIBlurEffectStyleSystemThickMaterial 这样的东西只能在最新的 iOS 上使用,如果你的目标低于这个值就会失败? 您能否确认您的 N 运行时版本和您正在使用的插件名称? ✔ 组件 nativescript 有 6.3.3 版本并且是最新的。 ✔ 组件 tns-core-modules 有 6.3.2 版本并且是最新的。 【参考方案1】:labelColor
是 iOS 13 引入的新属性。您需要 XCode 11 才能为 iOS 13.x 及更高版本构建。也就是说,其中一个插件正在引入一个名为 MBProgressHUD 的 pod。该 pod 正在使用最新的 iOS API。但是您的构建很可能会失败,因为它是使用 XCode 10.x 或更低版本构建的。要解决此问题,请尝试使用 XCode 11 和最新的 tns-ios
(6.3.x 及更高版本)+最新的 tns-core-modules
构建。
【讨论】:
所以如果我坚持使用这个插件,IOS 版本低于 13 的人将无法使用我的应用程序? 我怎么知道哪个插件正在使用它? 只需搜索 MBProgressHUD -@nstudio/nativescript-loading-indicator
能否请您也回答我的第一条评论?
我有同样的问题,但我正在使用 Sidekick 云构建并且我有 xcode 11。我该怎么办?以上是关于如何在 ios 中为 nativescript 应用程序调试构建失败?的主要内容,如果未能解决你的问题,请参考以下文章
如何在nativescript中为stacklayout提供边框和边框半径
如何在 iOS 中为表格视图和滚动视图设置偏移量,以便两者一起滚动
NativeScript - ios如何在键盘出现时调整视图