Keychain not the same for TestFlight vs App store build? - ios

Is it normal that TestFlight uses a different keychain then the app store build?
I have added my login-credentials in my keychain so that the app login's automatically when it is started, but when I install the TestFlight app over the AppStore app.
The keychain seems to not be the same as the app store because it cannot find the credentials.
both apps have the same bundle identifier.

Yes it is normal. As you install your app from AppStore and from TestFlight, iPhone/iPad consider both the app as different apps even with the same name. There may be difference in both builds'versions. Or even if both the builds are same it consider the different one. If you have noticed the TestFlight version and AppStore version are installed separately. And another thing to note is that when you install an app from test flight then the app name Start with a colored Dot which denotes that the build is downloaded from test flight and it makes the app different from other all apps.Please see the Image attached which show a build installed from test flight.Application installed from TestFlight denoted with colored note in the starting of the application name

Related

Unable to install app from TestFlight (works fine from Xcode)

I'm trying to install my app from TestFlight.
When I press INSTALL, the download indicator runs for a sec and then stops.
I can see the app on my phone, clicking on the app raises
Unable to install the app, please try again later.
It's very weird, since I run the app on a physical device using Xcode, and everything was just fine. Also, older versions of the app are downloaded from TestFlight without any problem.
The app passed through all checks before uploading to the store.
How is it possible that I cannot install the app from TestFight?
What can I do in order to debug this issue?
This can be happen with number of reasons as given below:
Might be you are using the developer profile instead of Adhoc profile
OR using an app identifier that is different from the one that belongs to your profile
OR might be an issue in enable/disable of iCloud and Gamecenter
What you can do is you can connect the device to PC/Mac. Open the iPhone Configuration Utility and see the logs after you press install from the build in TestFlight. It will helps you to dig it.
And last hope is this issue can be at apple side as many developer are facing as given below: https://developer.apple.com/forums/thread/26759
It's not the correct answer.
In case you are in a rash, and your project was already uploaded from another Mac to the store, a temporary solution will be to import the project to a well-configured Xcode from another computer and send it configured back to your computer. Make sure you have all necessary certificates, Build, and upload to the store. Then I was able to run the app on TestFlight and upload new updates without problems.
IMO, Apple did a really bad job connecting and configuring Xcode projects to the store. As a Flutter developer, I upload apps for both App Store and Play Store, and working with Apple is frustrating. There were no logs or indications about this issue, and it's almost impossible to track the mistake.

Deploying a React Native App for iOS without App Store

I am creating an app for iPad on React Native. I am working on a macbook.
I want to test the app on a physical iPad with a deployed production build of the app.
I don't seem to understand how am I supossed to do that. I'm finding a lot of info on how to deploy to the App Store, but that's not what I need.
I used to use expo for Android and build an APK and just install it on a physical device, now I want to do something similar.
This time I'm not using Expo, just react-native-cli and XCode. I tried the app on a simulator and it works, but now I want to send it to a different person so he can test it on a physical device and not on debug mode, but on an actual production build of the app.
How can I achieve that?
You can use www.diawi.com for that.
First, you'll want add any device's UDID that you want the app installed on to your provisioning profile in your app.
Try this out to add a UDID
Then to create an .ipa of your app, follow along in this link up until "Installing Your App on Test Devices Using Xcode".
Once you have your .ipa, upload that to https://www.diawi.com/
Diawi will return to you a link that you can send out to user's who's UDID you've added to the provisioning profile.

How to differentiate App Store, TestFlight, and IPA installs on iOS app?

I have an iOS app and need a way to determine programmatically if the app was installed from the App Store, from TestFlight, or from an IPA file from the internet.
I've tried checking the last part of the app store receipt url as some people have suggested regarding different types of app installs, but both IPA files and TestFlight installs have "sandboxReceipt" as the last path component of the receipt url.
Expected results are, of course, the ability to determine how my app was installed.

App Store not recognizing app installed from Xcode

When I install my app through Xcode, App Store no longer recognizes that the app is installed. This makes things like deep links difficult to test.
I have verified that my Product Bundle Identifier is the same for Debug and Release (it's different for AdHoc, but that shouldn't matter in this case). When downloading from App Store, it does not add a second app, it simply updates the previous app.

Ionic 3 - Can't install production app on iOS

I'm building my app for iOS using ionic package.
https://docs.ionic.io/services/package/
I created certificates for both development and production, including push.
https://docs.ionic.io/services/profiles/
development - built successfully using ionic package, installed on iOS with no problem.
production - built successfully using ionic package, when I try installing it on iOS it starts installing the app normally, then when almost finished the app disappears and it ends up not being installed, no errors appear.
Why does it happen?
In order to test the production .ipa on my device, I'm installing it via the iTunes software. (I'm not publishing it in the App Store yet)
The same goes for the development .ipa, though for this one it's a given.
I found this old issue which suggests it might be due to bundles ids that don't match:
In-House App Disappears After Install
The widget id in my app's config.xml is identical to the App ID on Apple Developer.
Are there more places that are supposed to be identical which I'm not aware of? Perhaps info I'm inputting when creating the certificates?
My final goal is to publish this app in the App Store, it's not an In-House app - I'm stating this to avoid confusions.
I have faced the same issue when i was building my iOS apps , after a couple of research i came with this fact :
When you prepared the Production build (Store App ) it will not be able to install in the development devices . if you need to test that production app in your development device you need to build the app with ADHoc Provisioning Profile . then only it is able to allow you to install in the Development devices.
AdHOC provision profile is a distribution provisioning profile that allows your app to be installed on designated devices and to use app services without the assistance of Xcode. It’s one of the two types of distribution provisioning profiles that you can create for apps. (You use the other type of distribution provisioning profile later to submit your app to the store.) An ad hoc provisioning profile ensures that test versions of your app aren’t copied and distributed without your knowledge.
When you’re ready to distribute your app to testers, you create an ad hoc provisioning profile specifying an App ID that matches one or more of your apps, a set of test devices, and a single distribution certificate.
The App Store version app is, as its name implies, for use only when distributing via the App Store. It exists for signing your app for distribution via the App Store and can't be used for any other purpose. Unless you install an app that has been signed by it via the App Store it will obviously fail.
If you want to distribute an app for internal use to a few devices and for a relatively short period, you should use an Ad Hoc profile (which i explained in above ); if to a lot if users for an extended period, you need to register as a corporate developer and follow a different process.
For More Details regarding Adhoc refer the following link:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html
You can't just directly install production build onto your test device, its against apple's policy.
So in order to do that you can export an Ad-hoc build and then you can install in your device, provided that device is already included inside your provisioning profile.
Ad-hoc builds works same as production builds, only difference is you can only install on those devices which are included in your provisioning profile for that app.
It is not possible to directly install Production iOS App on the mobile device. This can only be done via TestFlight. Step by step tutorial below.
Prerequisites
You have your Mobile App Prod build ready and signed
You have iOS mobile test device with TestFligh app on it
Step by step
On MAC open XCode -> Open DEveloper Tool -> Application Loader
Click 'Choose' file to pick up your build file from local machine and continue to upload
Once app is uploaded it will be visible from iTunes Connect console (wait until Processing is finished before submitting to TestFlight)
Once that's done, open TestFlight App on the iOS mobile device and download your new app.

Resources