首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nativescript -设置Nativescript插件的目标IOS版本

Nativescript -设置Nativescript插件的目标IOS版本
EN

Stack Overflow用户
提问于 2020-08-10 21:59:11
回答 1查看 1.7K关注 0票数 7

我最近将我的xcode更新到了Xcode12测试版,这样我就可以看到我的应用程序将如何在即将发布的iOS14上运行

当尝试运行TNS run IOS时,我得到以下错误:

代码语言:javascript
复制
Saving metadata generation's stderr stream to: /Users/USER/Desktop/Projects/APP/platforms/ios/build/Debug-iphonesimulator/metadata-generation-stderr-x86_64.txt
~/Desktop/Projects/APP/platforms/ios
ld: building for iOS Simulator, but linking in dylib built for iOS, file '/Users/USER/Desktop/Projects/APP/platforms/ios/internal//NativeScript.framework/NativeScript' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
note: Using new build system
note: Building targets in parallel
note: Using codesigning identity override:
note: Planning build
note: Using build description from disk
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99. (in target 'MDFInternationalization' from project 'Pods')
warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99. (in target 'IQKeyboardManager' from project 'Pods')

这是我的Podfile

代码语言:javascript
复制
use_frameworks!
target "ClientApp" do
# NativeScriptPlatformSection /Users/USER/Desktop/Projects/APP/node_modules/tns-core-modules/platforms/ios/Podfile with 9.0
platform :ios, '9.0'
# End NativeScriptPlatformSection
# Begin Podfile - /Users/USER/Desktop/Projects/APP/node_modules/tns-core-modules/platforms/ios/Podfile
# platform :ios, '9.0'
use_frameworks!
pod 'MaterialComponents/Tabs', '~> 84.4'
# End Podfile
# Begin Podfile - /Users/USER/Desktop/Projects/APP/node_modules/nativescript-iqkeyboardmanager/platforms/ios/Podfile
pod 'IQKeyboardManager', '~> 6.2.0'
# platform :ios, '9.0'
# End Podfile
end

我也试过了,也得到了同样的错误

代码语言:javascript
复制
use_frameworks!
target "ClientApp" do
# NativeScriptPlatformSection /Users/USER/Desktop/Projects/APP/node_modules/tns-core-modules/platforms/ios/Podfile with 9.0
platform :ios, '9.0'
# End NativeScriptPlatformSection
# Begin Podfile - /Users/USER/Desktop/Projects/APP/node_modules/tns-core-modules/platforms/ios/Podfile
# platform :ios, '9.0'
use_frameworks!
pod 'MaterialComponents/Tabs', '~> 84.4'
# End Podfile
# Begin Podfile - /Users/USER/Desktop/Projects/APP/node_modules/nativescript-iqkeyboardmanager/platforms/ios/Podfile
pod 'IQKeyboardManager', '~> 6.2.0'
# platform :ios, '9.0'
# End Podfile
end
post_install do |pi|
    pi.pods_project.targets.each do |t|
        t.build_configurations.each do |config|
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
        end
    end
end

我已经试着去掉了Podfile中的注释。

这也是我的package.json

代码语言:javascript
复制
{
  "nativescript": {
    "id": {
      "ios": "{{ID}}",
      "android": "{{ID}}",
    },
    "tns-android": {
      "version": "6.1.1"
    },
    "tns-ios": {
      "version": "6.5.2"
    }
  },
  "description": "NativeScript Application",
  "license": "SEE LICENSE IN <your-license-filename>",
  "repository": "<fill-your-repository-here>",
  "scripts": {
    "lint": "tslint \"src/**/*.ts\""
  },
  "dependencies": {
    "@angular/animations": "~8.2.0",
    "@angular/common": "~8.2.0",
    "@angular/compiler": "~8.2.0",
    "@angular/core": "~8.2.0",
    "@angular/forms": "~8.2.0",
    "@angular/platform-browser": "~8.2.0",
    "@angular/platform-browser-dynamic": "~8.2.0",
    "@angular/router": "~8.2.0",
    "@types/node": "^12.12.11",
    "jwt-decode": "^2.2.0",
    "nativescript-angular": "~8.2.0",
    "nativescript-cardview": "^3.2.0",
    "nativescript-drop-down": "^5.0.4",
    "nativescript-filterable-listpicker": "^2.2.6",
    "nativescript-iqkeyboardmanager": "^1.5.1",
    "nativescript-materialdropdownlist": "^1.0.15",
    "nativescript-phone": "^1.4.1",
    "nativescript-theme-core": "~1.0.6",
    "nativescript-ui-autocomplete": "^5.1.1",
    "nativescript-ui-sidedrawer": "~7.0.0",
    "reflect-metadata": "~0.1.12",
    "rxjs": "^6.4.0",
    "tns-core-modules": "~6.1.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular/cli": "^8.3.5",
    "@angular/compiler-cli": "~8.2.0",
    "@nativescript/schematics": "^0.7.1",
    "@ngtools/webpack": "~8.2.0",
    "@types/jasmine": "^3.4.0",
    "codelyzer": "~4.5.0",
    "nativescript-dev-webpack": "^1.4.0",
    "node-sass": "^4.7.1",
    "tslint": "~5.19.0",
    "typescript": "~3.5.3"
  }
}

我在firebase插件中也收到了同样的错误,但我删除了它。

理想情况下,我应该能够让所有依赖项都指向相同的IOS版本,如果有问题,我会从那里解决。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-17 06:43:50

我通过在App_Resources/iOS文件夹中添加一个Podfile解决了这个问题,其中包含以下代码。

代码语言:javascript
复制
post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET'
    end
  end
end

这个循环遍历pod,删除它们的部署目标,允许它们继承设置。必须确保在此之后删除platforms文件夹并重新生成,以使更改生效。

添加的Podfile将与平台中生成的Podfile合并。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63341691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档