I'm completely new to React Native, Expo and App development in general.
I'm building a React Native app solely for iOS using Expo. I've finally managed to finish a version I'm happy with, tested with users etc. I've now been spending time adding all the required screenshots, text, info etc to App Store Connect in order to submit the app. While doing that, I learned that iPad app screenshots was mandatory, which I found weird.
I later found that I had "supportsTablet: true" in my App.json file, so it makes sense that it's expecting iPad pictures. After changing this and making a new build and submitting that, it's still a requirement.
After Google a bit I can see that it has been impossible to change this:
Removing iPad support from app
iOS App Submission : remove iPad support
iOS App Submission want to remove iPad support
This led me down the road of trying to upload the app as a new submission. I can't get this to work though. According to this documentation:
https://developer.apple.com/library/archive/qa/qa1623/_index.html
I should change bundle identifier and upload again. Changing this in app.json under expo.ios.bundleIdentifier doesn't work though, as I just get an error that I've already uploaded this app previously.
What are the steps I should do to reupload the app as a new submission, so that I can not support iPad?
In order to upload a new version, you must increase the version and the build number. You can find this if you open the project in Xcode under the General tab and the Identity section. In the same tab, you will see the Deployment Info section where you can untick the iPad. Check the picture attached.
Related
I have been building an app in React Native with Expo for the last few months.
I just got accepted as a Apple Developer so now I am trying to publish my app to TestFlight.
Everything seemed to go perfect, the building process passed and I uploaded my app through the Transporter app. Now I have my app installed on my phone but every time I open the app it shows a very short Splash image and then goes to a white screen forever. I've searched every possible solution but can't seem to find anything and I am running out of options.
I checken my app.config.js and my eas.json file and it all seems valid to me. So please, if someone experienced this and knows how to solve this, it would be very helpful!
I was expecting to see my app just like I saw it before, while testing it in the Xcode simulator. I have tried changing my config files but it all seems correct to me.
We want to lock screenshot on app screens in React Native app so that user is not allowed to take the screenshot. The feature is implemented successfully in android version of the same React Native app. But it is not working in iOS app which is published to app store. I have also tried react-native-prevent-screenshot plugin but that is also not locking screenshot in iOS version. I even implemented blurred view on appDelegate.m file to prevent screenshot capture in app, but even this did not have any impact. Can someone tell if Apple has banned this feature completely or there is possibility of some issue in coding. But I rule that out because it is working successfully in android apk. Please help
Previously I used this package to prevent snapshot for selected screen in android and ios.
https://www.npmjs.com/package/react-native-privacy-snapshot
https://github.com/kristiansorens/react-native-flag-secure-android
But it's not maintained by the owner and not compatible with react-native version >0.60. Many example and question in the internet only show how to prevent snapshot for whole application. But I need to prevent snapshot only for selected screen.
I've tried to do with this example
https://medium.com/#jonaskuiler/creating-a-security-screen-on-ios-and-android-in-react-native-97703092e2de
But in android, it prevents whole apps. In ios, it works.
you can use nmp library, react-native-prevent-screenshot
for more confusions and a perfact understanding check this asnwer
I have a react-native app that is using Expo.
In the beginning of the project I pushed some code to the default publishing channel that was never intended to be used in production.
Since then I have released dozens of versions to production and mostly all works as expected. (New installs gets the latest JS code)
However, a few users still gets old versions of the code, even though they literally just downloaded the app from App Store / Google Play.
This is extremely frustrating. How can I make sure that fresh downloads of the app will download the correct/latest version och my JS?
Note that this is not related to the app detecting new code that might be available for download. It is the fact that the wrong code is downloaded and used to begin with. Is there any way to remove all JS-code except the very last version that I published? I imagine that would solve my issue
Turns out, expo don’t always do this successfully. You need to rebuild the react native bundle before publishing.https://proandroiddev.com/bundling-react-native-during-android-release-builds-ec52c24e200d
This is what expo gives as a feature known as Over the Air updates (OTA). Whenever a new version is built with expo channel, it automatically updates even in the app store and play store. But there is a way to disable the updates. the expo documentation for disabling:
It is possible to entirely disable OTA JavaScript updates in a standalone app, by setting updates.enabled to false in app.json. This will ignore all code paths that fetch app bundles from Expo's servers. In this case, all updates to your app will need to be routed through the iOS App Store and/or Google Play Store.
This setting is ignored in the Expo client.
And I do recommend you to read the documents of OTA, which is a good feature when you get to know all of it.
The expo link is expo OTA
I want to access realm database created by my ios app that I created using react-native. Its easier to use adb pull for android but for ios I am not getting much idea. There are some links like -
realm-file in ios app
to find app uuid for above link
So any help, how to view realm db for developing and debugging purpose for react-native developed ios app.
Thanks for the answer but additional (out of curiosity) Question - but how to find app uid which are installed by react native on ios simulator ??
While searching through the web, got the answer in docs:
console.log('realm db file path:', realm.path);
With the iOS emulator you can just find the path and open the Realm directly (which allows you to see the changes as they happen, great for debugging), on Android you will have to copy the file out to the regular file system.
It is all described in the docs for Realm Studio: https://docs.realm.io/platform/realm-studio/view-your-data#viewing-realms-from-emulators