Disable ios App Tracking for expo react native app - ios

We don't track users in our expo react native app and do not use any ad libraries but in the expo eas build somehow AppTrackingTransparency framework is added and we get rejected in App Store. I read expo is adding this by default. But is there a way to disable it?
We use the following libraries though which may also adding this framework:
expo-facebook
firebase
Can someone help with this issue? How is it possible to turn off the AppTrackingTransparency framework with the eas build. Maybe in eas.json or app.json?
Is there a library to turn this off?
The only idea I have is to use this library and leave the tracking description (userTrackingPermission) empty:
expo-tracking-transparency plugin

Related

React Native EXPO (+EAS) - iOS WidgetKit

I would like to ask if there is a way to use Expo Managed Workflow with EAS CLI with WidgetKit of iOS without ejecting from Expo.
Thanks :)
I searched online but couldn't find anything

WatchOS App for React-Native IOS app is not uploading to App Store Connect (ITMS-90496: Invalid Executable)

We have developed a Watch App for our React-Native IOS app using SwiftUI. After the the integrations are completed, we've tried to upload the build to TestFlight for testing purposes. In the process, since enabling bitcode is mandatory for WatchOS apps, it is enabled through Project Target -> Build Settings -> Build Options -> Enable Bitcode : Yes (And also tried to enable bitcode for Pods target). However, there is no other option to enable bitcode in the Watch Targets (both watch app and watchkit extension).
When we tried to upload the build to TestFlight, it got rejected with the error code ITMS-90496: Invalid Executable - The executable "{ProjectName}/Watch App WatchKit Extension.appex/WatchKit Extension" does not contain bitcode.
I have also read that in order to make the whole project bitcode enabled, you need to make sure that the libraries are also bitcode compatible. And since the app is a React-Native app, it contains a lot of 3rd party libraries. If anyone who tried to add a Watch App to an existing React-Native project and managed to upload it to TestFlight can help us during the process, it would be really helpful.
For those who are experiencing the same issue, our was in RN 0.63.* version, and the third party libraries were kind of old as well. After upgrading both RN and the third party library versions, the issue is gone and we're now able to upload to Testflight!
In my case it helped to open the project.pbxproj file in an editor outside of Xcode (e.g. VSCode) and remove all lines that contain ENABLE_BITCODE.
Seems the default settings of ENABLE_BITCODE are the right ones. Somehow Xcode puts in these lines without needing them.

How to create a distributive react-native app for iOS?

I have created a react-native app using the tools - VS Code, expo, react-native.
I am able to run the app on expo client as well as xcode simulator easily on my laptop. What I want now is to make a distributive file for iOS like we have .apk for androids for this app.
I referred to this question How to build .ipa application for react-native-ios?
and tried
react-native run-ios --configuration=release
but I get an error:
Error iOS project folder not found. Are you sure this is a React Native project?
Don't know what I am missing here? I am a beginner with react-native, would really appreciate any help on this.
You have to run expo build:ios that will then ask you your account and certificates, once you have all that figured out it will give you a link where you can see how the build is doing, after it's complete you can download the .ipa file and use the app transporter from the app store to send you app to apple servers.
(All this if you are using expo, if you aren't it's a hole different conversation and a lot more difficult)

ionic ios app rejected using com.apple.springboard.lockcomplete

I have an ios application created with ionic framework. But in my last submission app store has rejected my app and said,
Your app uses or references the following non-public APIs:
com.apple.springboard.lockcomplete
I was trying to find anything like in the above by searching through the project using xcode and visual studio code.
Can anyone give a suggestion to find the above command in the project/plugins? Any other way to solve this issue?

React native link Ejecting

I tried searching in previous questions, but I did not find it. I made the mistake of using Create React Native App projects. I am trying to do react native link. I did npm i --save. I get an error
react-native link can not be used in Create React Native App projects. If you need to include a library that relies on custom native code, you might have to eject first. See https://github.com/react-community/create-react-native-app/blob/master/EJECTING.md for more information.
I read this and sadly I am completely at a lost. I am using visual studio code and not xcode.
The error is exactly as it states. You cannot link assets and libraries that require linking unless you eject the project from Create React App and get the native project files. Ejecting gives you the native code and with that, you can use Xcode to link libraries with native code.
Create React App is built on Expo, which aims to allow you to develop apps, especially iOS apps, on any platform. But Expo comes with its restrictions due to the very nature of what it accomplishes.
Thus, the problem arises when you want to link platform dependent libraries that require Xcode in iOS's case. Xcode is the proprietary - and really, the only way, to build Apple-based projects that require external libraries because they require APIs and environments only available with it. This was one the huge reasons Expo arose, to allow people to build apps with React Native without having Xcode, but it has its limitations.
So, you cannot use a library that requires linking with native code if you do not have Mac OS because APIs and tools needed for it are only offered on Mac OS.

Resources