Skip to content

"IPHONEOS_DEPLOYMENT_TARGET" is not set properly in "project.pbxproj" #10337

Open
@MarkOdey

Description

@MarkOdey

Issue Description

It seems like "IPHONEOS_DEPLOYMENT_TARGET" is not properly parsed and set in project.pbxproj.

Currently I managed to fix this by parsing the podfile for "platform :ios," during the after-prepared hook and specifically ensuring that commented lines are ignored.

Take this :
platform :ios, 13

Not this :

# platform :ios, 12

This finally fixed my problem. I suspect that a similar strategy is used to update project.pbxproj but the parsing is not considering "#"

Reproduction

To reproduce this bug, you need to have a plugin installed that its target ios version is 12.0 and another plugin with its target ios version is 13.0.

In my case

@nativescript-community/ui-mapbox was requiring 13.0
@nativescript/firebase-analytics was requiring 12.0

This is a subtle bug but because of that, ou app was made available to user with device that wont work on app store.

You can obviously simply fix this bug in xcode by manually fixing the version but this is not fool proof for our team.

Relevant log output (if applicable)

No response

Environment

OS: macOS 13.1
CPU: (10) arm64 Apple M1 Max
Shell: /bin/zsh
node: 18.15.0
npm: 9.5.0
nativescript: 8.5.3

# android
java: 11.0.11
ndk: Not Found
apis: 19, 28, 29, 30, 31, 32, 33
build_tools: 28.0.0, 28.0.1, 28.0.2, 28.0.3, 29.0.0, 29.0.1, 29.0.2, 29.0.3, 30.0.0, 30.0.1, 30.0.2, 30.0.3, 31.0.0, 32.0.0, 32.1.0, 33.0.0
system_images: 
  - android-19 | Google APIs ARM EABI v7a
  - android-21 | Google APIs ARM 64 v8a
  - android-22 | Google APIs Intel x86 Atom
  - android-28 | Android TV Intel x86 Atom
  - android-28 | China version of Wear OS Intel x86 Atom
  - android-28 | Wear OS Intel x86 Atom
  - android-28 | ARM 64 v8a
  - android-28 | Intel x86 Atom
  - android-28 | Intel x86 Atom_64
  - android-28 | Google APIs ARM 64 v8a
  - android-28 | Google APIs Intel x86 Atom
  - android-28 | Google APIs Intel x86 Atom_64
  - android-28 | Google ARM64-V8a Play ARM 64 v8a
  - android-28 | Google Play Intel x86 Atom
  - android-28 | Google Play Intel x86 Atom_64
  - android-32 | Google APIs ARM 64 v8a
  - android-32 | Google APIs Intel x86 Atom_64
  - android-32 | Google Play ARM 64 v8a
  - android-32 | Google Play Intel x86 Atom_64
  - android-33 | Google APIs ARM 64 v8a
  - android-33 | Google APIs Intel x86 Atom_64
  - android-33 | Google Play ARM 64 v8a
  - android-33 | Google Play Intel x86 Atom_64
  - android-Tiramisu | Android TV ARM 64 v8a
  - android-Tiramisu | Google TV ARM 64 v8a
  - android-Tiramisu | Google TV Intel x86 Atom
  - android-TiramisuPrivacySandbox | Google Play ARM 64 v8a
  - android-TiramisuPrivacySandbox | Google Play Intel x86 Atom_64

# ios
xcode: 14.3.1/14E300c
cocoapods: 1.12.1
python: 3.11.4
python3: 3.11.4
ruby: 2.6.10
platforms: 
  - DriverKit 22.4
  - iOS 16.4
  - macOS 13.3
  - tvOS 16.4
  - watchOS 9.4

Dependencies

"dependencies": {
  "@nativescript-community/ui-lottie": "5.0.6",
  "@nativescript-community/ui-mapbox": "6.2.19",
  "@nativescript-community/ui-pulltorefresh": "2.5.3",
  "@nativescript-community/ui-svg": "0.1.9",
  "@nativescript/biometrics": "1.3.1",
  "@nativescript/core": "8.5.7",
  "@nativescript/firebase-analytics": "3.1.0",
  "@nativescript/firebase-auth": "3.1.0",
  "@nativescript/firebase-core": "3.1.0",
  "@nativescript/firebase-crashlytics": "3.1.0",
  "@nativescript/firebase-installations": "3.1.0",
  "@nativescript/firebase-messaging": "3.1.0",
  "@nativescript/firebase-remote-config": "3.1.0",
  "@nativescript/geolocation": "8.2.0",
  "@nativescript/iqkeyboardmanager": "2.1.1",
  "@nativescript/localize": "5.1.0",
  "@nativescript/secure-storage": "3.0.1",
  "@proplugins/nativescript-cardview": "5.0.0",
  "@triniwiz/nativescript-toasty": "4.1.3",
  "lodash": "4.17.21",
  "moment": "2.29.4",
  "nativescript-dev-version": "./custom-hooks/version",
  "nativescript-ui-listview": "15.2.3",
  "nativescript-vue": "2.9.3",
  "vue-currency-filter": "5.2.0",
  "vue-i18n": "8.28.2",
  "vuex": "3.6.2"
},
"devDependencies": {
  "@nativescript/android": "8.5.0",
  "@nativescript/ios": "8.5.2",
  "@nativescript/types": "~8.5.0",
  "@nativescript/webpack": "5.0.15",
  "@vue/cli": "5.0.2",
  "@vue/cli-plugin-babel": "5.0.8",
  "@vue/cli-plugin-eslint": "5.0.8",
  "@vue/cli-service": "4.5.11",
  "@vue/eslint-config-prettier": "7.1.0",
  "eslint": "8.43.0",
  "eslint-plugin-import": "2.27.5",
  "eslint-plugin-prettier": "4.2.1",
  "eslint-plugin-vue": "9.15.0",
  "moment-locales-webpack-plugin": "1.2.0",
  "moment-timezone-data-webpack-plugin": "1.5.1",
  "nativescript": "8.5.3",
  "nativescript-vue-template-compiler": "2.9.3",
  "prettier": "2.8.8",
  "vue-template-compiler": "2.7.14",
  "webpack-bundle-analyzer": "4.9.0",
  "xcode": "^3.0.1"
}

Please accept these terms

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug-pending-triageReported bug, pending triage to confirm.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions