SolvedNativeScript {N} 7.0.1 adds the wrong iOS 14 frameworks to project

Environment

  • CLI: 7.0.1
  • iOS Runtime: @nativescript/ios 7.0.1

Describe the bug
NativeScript.framework/NativeScript and TKLiveSync.framework/TKLiveSync are compiled with sdk 14.2 so it works on simulators/devices/testflight but if you try to submit for review to the app store it says

ITMS-90512: Invalid sdk value - The value provided for the sdk portion of LC_VERSION_MIN_IPHONEOS in mypackagename.app/Frameworks/NativeScript.framework/NativeScript is 14.2 which is greater than the maximum allowed value of 14.0.

ITMS-90512: Invalid sdk value - The value provided for the sdk portion of LC_VERSION_MIN_IPHONEOS in mypackagename.app/Frameworks/TKLiveSync.framework/TKLiveSync is 14.2 which is greater than the maximum allowed value of 14.0.

To Reproduce
Just submit for review an app to the app store

Expected behavior
The two frameworks should be built with release sdk not beta

Also here
Originally posted by @eltharynd in #8867 (comment)

37 Answers

✔️Accepted Answer

We have pushed a new RC1 -- this should solve the upload to Apple issue. We sincerely apology for the issue; somehow the last RC still got built with a XCode Beta even though the Xcode tooling said it was using the XCode GM 12.01.

npm i --save-dev @nativescript/ios@latest

then a

ns clean

You should be good after this...

Other Answers:

I was able to find a temporary workaround...
I build my own frameworks...

Here's a simplified step by step

# Clone repo
git clone https://github.com/NativeScript/ns-v8ios-runtime.git

# Install CMake and LLVM (8)
brew install cmake llvm@8

# Open the runtime in XCode
cd ns-v8ios-runtime
open v8ios.xcodeproj

# Update the project to use the 12.0 sdk instead u
Click the yellow xcode warning on the left that asks to update the sdk version and confirm

#If you have an error i just modified it this way cause it wasn't taking it as a single expression
const std::__1::string buffer = std::to_string(i);
const char* name = buffer.c_str();

# Build the device version of frameworks
Select the Nativescript target and any ios device and hit Run (the play button).
Select the TKLiveSync target and any ios device and hit Run (the play button).

#On your project clean the platform and prepare it
tns clean
tns prepare ios --for-device

#Open your workspace with xcode

#on the project general tab remove both frameworks
#Nativescript 
#TKLiveSync 

#Drag v8ios.xcodeproj from its xcode window to your app name on your app xcode window
#this will make your project use your 12.0 compiled frameworks

#Select any ios device, build and then ytou can archive and deploy from xcode and it should work

basically a combination of both
https://github.com/NativeScript/ns-v8ios-runtime
and
https://docs.nativescript.org/core-concepts/ios-runtime/how-to/debug-ios-runtime

as a side note: I'm not still 100% sure it worked but usually after 3 minutes from submitting for review I immediately got the error, it hasn't so far for about an hour... by usual apple standards i can only be sure about this in 2 days but So far it seems ok.. I'll update if this doesn't work

We have pushed a new RC1 -- this should solve the upload to Apple issue. We sincerely apology for the issue; somehow the last RC still got built with a XCode Beta even though the Xcode tooling said it was using the XCode GM 12.01.

npm i --save-dev @nativescript/ios@latest

then a

ns clean

You should be good after this...

It worked for my app's submission. Applestore 's not longer reject it with the ITMS-90512 issue.
My local env:
√ Getting NativeScript components versions information...
√ Component nativescript has 7.0.10 version and is up to date.
√ Component @nativescript/core has 7.0.10 version and is up to date.
√ Component @nativescript/ios has 7.0.2-rc1 version and is up to date.
√ Component @nativescript/android has 7.0.0 version and is up to date.

Xcode 12.0.1
MacOS 10.15.7

Same here, built yesterday with the new RC and passed Apple validation today 👍
Thanks guys 🙏

More Issues: