React Native: what to set minimum deployment target to? - react-native

I'm trying to add react-native-vision-camera to my React Native app, and it gave me the following error:
Specs satisfying the VisionCamera (from ../node_modules/react-native-vision-camera) dependency were found, but they required a higher minimum deployment target.
In my podfile I have platform :ios, '10.0'. Is there a way to find the minimum deployment target that this library requires? And is there ever a disadvantage to increasing the minimum deployment target?

If you look at the Podfile in the example project of the repo, the minimum deployment target is iOS 11.
https://github.com/mrousavy/react-native-vision-camera/blob/main/example/ios/Podfile
The disadvantage of increasing the minimum target is that your app won't work on devices that can't upgrade to your minimum OS version. Supporting two OS versions behind the latest major release is pretty common.
You can check Apple's compatibility chart here: https://support.apple.com/en-us/HT209574
Anything older than those devices won't work.

Open your iOS project in Xcode and then follow these steps:

Related

React native async storage mac OS pod install failing

Specs satisfying the `RNCAsyncStorage (from `../node_modules/#react-native-async-storage/async-storage`)` dependency were found, but they required a higher minimum deployment target.
I have changed the deployment target to 10.15 from xcode, but I still get this
The RNCAsyncStorage's min deployment target is 9.0.
Change the line in podfile to 9 or later. And I suggest marking it to 11
platform :ios, '9.0'

Building for Mac Catalyst with Crashlytics

Has anybody using Crashlytics been able to compile their iOS app for Mac Catalyst?
I tried building one of our iOS apps for Catalyst but I got the following error:
ld: in /Users/foo/bar/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics(CLSInternalReport.o), building for Mac Catalyst, but linking in object file built for iOS Simulator, file '/Users/foo/bar/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics' for architecture x86_64
I've updated to the latest version of Crashlytics using Cocoapods. Since CL already works on macOS, I would think it might be possible to link to the correct x86 library with Catalyst.
Previously Firebase Crashlytics was not supported by the Mac Catalyst. In the new version of Firebase Crashlytics (6.15.0), they have provided the support.
This is my current workaround. It does not let me use Crashlytics with Catalyst, but I can continue to create both Catalyst and iOS builds.
Clone your usual build target.
Enable Catalyst on the new target.
Add a section to the Podfile for the new target.
Include all required pods in the new target except Fabric and Crashlytics.
pod install
In the source code, conditionally build Crashlytics-dependent code using #if canImport(Crashlytics)
Continue to build the iOS app from the old target. Use the new target for Catalyst builds.

crashlytics beta add build flavors

I'm using Crashlytics beta for our beta distribution using fastlane and for both iOS and Android I get the same issue.
I'm unable to upload different flavors, only the last updated flavor is visible in the app list.
I'm unable to see the previous builds, only the most recent one.
Is there a way to add flavors/build variants for iOS and Android. And where can I see the list of previous uploads?
Set ext.alwaysUpdateBuildId to true in you build.gradle file.

Static Library and deployment target issue

I am working on iphone app with deployment target 5.1.1 and now i am adding google ios sdk in my project. I am not giving this functionality to user who has iOS 5.1.1 in device.
But google iOS Sdk needs to set Other Linker flag (-ObjC) in build setting and it creates problem in iOS 5.1.1.
is there any way to set Other Linker flag conditionally? i need to give support for iOS 5.1.1.
I tried below steps but not able to run app in iOS 5.1.1.
At the end compiler will generate single binary. Whether you provide certain feature in iOS 5.1.1 or not does not matter to compiler. So if you need to set deployment target to iOS 5.1.1 then all the static libraries you link must also support that particular deployment target.
More details on ObjC flag

iOS App Distribution and Deployment Target

I need to build app for distribution via app store.
Application is tested and working on iOS 5.0, 5.1 and 6.0.
Do I need to build different archives for each iOS version (change iOS Deployment Target setting for each build)?
Is there any difference to compiled output when I change iOS Deployment Target setting?
You just need to do one build with the lowest iOS version you want to support, and then you go through all the upload process.
Basically the SDK version you are using is highest iOS version it will run and Deployment Target is the lowest.
So set your Deployment Target to 5.0, compile using iOS SDK 6.0 (you don't have any other option, though) and that's it. Submit to the App Store.
I don't know if there are some differences in binary when changing Deployment Target, but there are some during compilation for sure. For example when you set it to iOS 6, you may get deprecation warnings from the latest API changes.