In-app update with TestFlight on iOS - ios

My iPhone app has now entered into a beta phase. I am using TestFlight to send the app to the testers. Everything works great, I publish the link, they download the app, no problem with any certificate or anything (true story, lol).
My only problem is I have absolutely no idea on how to send in-app updates. I saw on the latest SDK version that it's available, but I can't figure out how to do it ! Right now, if I upload a new build, and select "update & notify", an email is sent. How can I send a notification to the users, directly through my app, that a new version is available ? Right now I'm starting to think that this is not possible (if so, my bad). But I really thought I could do it !
As always, any help/link/doc is always appreciated ! :)

You can force an upgrade.
Go into settings in the upper right corner and select the "gear" then choose "Area 51" (this is the new features area, still beta). From there you can select to turn on "Forced Upgrades":
If you enable force upgrades on a build. The next time users open your build and there is an update available they will be forced to install the build before continuing.

You need to have different Bundle versions when uploading your app. You can set your bundle version in your apps info.plist under Bundle version. change that value to something else and you will be prompted now you open the app to upgrade or skip.

So far, my users where notified in the app without me having to do anything but call takeOff and (well here i'm not sure if this was necessary) use a few arbitrary checkpoints. They could choose wether or not they want to update their app now, later or never.
BUT apparently this has stopped working over the past few weeks, I'm receiving more and more feedback that the only way they got to know that there is an update available was through the email that is sent to them by testflight.

Related

App Build is not appearing on App Store Connect submission Dashboard

I have a Flutter developed App that I want to upload for App Store Review.
The App has been successfully uploaded through Xcode as you can see here— https://prntscr.com/26m7w94

Sadly, the Build doesn’t appear in my App Connect Build section as you can see here— https://prnt.sc/26no755

When I try to re-upload, it let’s me know that the Build is already uploaded to App Store Connect as you can see here— https://prnt.sc/26no84v

I have written to Apple and I don’t understand the answers they are giving me. They are just talking off-point.
Now I have waited for 8 days for this build to appear, but this uploaded build is not appearing.
Without this Build appearing, I cannot Submit to App Store Review.
Everything in the App Store Connect Form has been completely filled. Only Build remains to be added as you can see here— https://prntscr.com/26no94s
I can’t figure out what to do next, and this is 8(eight) wasted days gone by, with me not knowing what next to do.
Has anyone here faced this kind of problem before? How did you solve it?
Regards
Check in the TestFlight section. There might be a yellow triangle next to your build. You may need to answer some additional questions such as encryption usage etc. Just click on the triangle to answer and your build should be available afterwards.
Sometimes the answer to this issue is that there is actually a problem with App Store Connect (like right now).
You can check for issues on the Apple Developer System Status page.
For me changing the version from X.X.X to X.X.X+1 (2.2.2 -> 2.2.3) fixed the issue.
Sometimes it happens and I have also faced this problem .I successfully uploaded my bundle from Xcode but not found in connect.
I waited 30 minutes and refreshed .Then my bundle came in App Store connect.
Solution 1 : wait for some time & Refresh ,
Solution 2 : Create another Bundle and push to connect using Transporter (You can download transporter from appStore)
If the build doesn't show up on App Store Connect. You may want to check your email (the one you used as your Apple Id when uploading the build).
In my case Apple sent me an automatic email telling me that my build had some issues. Xcode didn't complain about anything and neither App Store Connect.
UPDATE: This might have boiled down to timing. After changing the version number to 1.0.0, that build showed up immediately. Half an hour later, the 0.0.1 build appeared out of the blue as well.
If you've set your version number to 0.0.1+X because you thought that makes sense while the app is still under development, change that back to 1.0.0+X. The upload will succeed, but app store connect won't list the build without a leading "1." in the version number.
Make sure no webviews are used in your app. It will not show builds in App Store Connect and neither XCode nor Apple will say that anything is wrong.

How to have multiple versions of app in TestFlight?

I've just published an app on Apple's store and I'm wondering about having multiple versions of the same app for testing on TestFlight. Of course dev doesn't stop when publishing... from now on I'll have to update the app store version (v1.0.0) with bug fixes (v1.0.1, v1.0.2, ...) and before doing so I'd like to check them in test flight to ensure the fix was appropriate.
My problem is that I'm already starting to develop the next version with further functionalities of the app which will become v1.1
So ideally I'd like to have my app available both for my bug fixes, for instance v1.0.2 and also my next version v1.1.0 (this will include all bug fixes made to the store version and also many new features, refactors, redesign, etc)
I know that if I build and upload to the apple store connect a build with v1.1.0 (next version) I won't be able to upload one for a built with a bug fix on the current app store version (v1.0.2) since this version would be lower than the one I uploaded (next version)
Is there a way to accomplish this? I've read this article https://savvyapps.com/blog/using-testflight-to-distribute-multiple-versions-ios-app which solution is to create extra applications in iTunes with different app ids and bind them to different certificates. But what will happen when the next release is ready to be in the store? I would have to release it and then disable the previous one? How may this affect my users? Will they have to re-install a new app rather than updating it?
I really need to start testing and checking the next release of my app in TestFlight and also support the current one with updates if something pops up. Thanks in advance!
I am able to upload multiple versions of the app to TestFlight. Each upload requires a higher version/build number, but you can switch the TestFlight test version between them as need be for testing.
Once I submit a particular build for release, however, I seem to lose the TestFlight access to the old builds.
In short, you can have many builds available in TestFlight, but once you submit the app for release, you have to start over making builds for TestFlight.
You keep talking about numbers like v1.0.1. That looks like a public-facing version string, with a major, minor, and patch number.
But that is not what TestFlight cares about. Well, it cares to some extent. But all TestFlight really cares about is that every new build you upload has a new build number. This is just an integer which you simply increment every time you submit a new build.
So you could have v1.0.1(23) on the App Store, and then on TestFlight you could upload v1.0.2(24) which starts moving forward toward version 1.0.2, but also upload v1.0.2(25) which is actually an attempt at a prospective version 1.1. TestFlight doesn't know or care what these different builds signify. They can all exist simultaneously on TestFlight. Keeping them all straight and on their individual trajectories is up to you.

What is the UX when I add additional builds to an existing external beta test in iTunesConnect

I currently have an app on iTunesConnect with a few hundred external beta testers using it. Important to note, we will have 2000 testers by the end of the month. I want to push new builds to this app- and this, I know how to do.
What I don't know is, what is the expected behavior for my beta users when I add a new build?
Our company cares a lot about user experience, and we don't want to have our current testers of our current build open the version that they've already installed, only to see it crash because I added a new build that i'm hoping will just update their current version automatically.
Apple does a good job of making a developer think this might happen. I've searched everywhere to find this answer in the docs- please help! After selecting a newly approved build to switch to in the External Testing portal, upon selecting Save, this alert appears:
(405 is the first build, 407 is the new build)
So, what happens when I save this- will users be notified that they need to update the app?
Will the "update" happen automatically for them if they've already installed the first build?
If they open the already installed version, will it simply crash?
If so, what can I do to prevent this from happening?
My team will likely want to send out 1-2 builds / week (of the same app, with fixes and improvements) to the same group of testers until we're ready to officially launch the app. I'd hate to think this would crash the app on them every time. As far as I know, there is no way for me to test this before performing this action- I'm already added as an Internal Tester, but that's a completely different UX in TestFlight (builds are made available to internal testers immediately after uploading)
If you think this has been asked already:
This is not a duplicate of this question- because I haven't attempted to send out the build yet. I want to make sure that linked issue does not happen to my testers!
My question is unlike this one where the user did not know how to properly increase his build number, unlike this one, referring to testing a new build of an app that already has a version in the app store, unlike this one which refers to a bug in the app store where a user couldn't initiate an external test after uploading a build, and unlike this one where the user just didn't know how the iTunesConnect portal works.

iTunesConnect: cannot transfer app because of "You must turn off TestFlight beta testing for the app that you want to transfer"

Below you can see that testing for external testers are turned off:
same for internal testing:
but when I transfer app, one of the criterias are not met:
Why?
I had the exact same issue, resolved by removing all Tester and Build from the TestFlight as discussed above also (!important) remove everything fields at the App Information - Test Information.
For me it was localised test descriptions. Make sure you check that drop down list on the right and clear out info for all languages.
I just solved the transfer issue, you just need to expire your build from tester by following the steps below. and then app will available for transfer..
open your app and click on testflight then click on the icon of your app as shown in below screenshot.
The click on expire build.
Now you can transfer your app :)
I've search for a long time and to me this worked:
Clean all builds inside: My Apps --> App Name --> TestFlight
Go to: Itunes Connect --> Users and Roles --> Tab "TestFlight Beta Testers" and click in the name from another user that isn't you.
Save.
Go back to the App in Itunes Connect: "Itunes Connect --> App Name --> Transfer App" and attempt to transfer again by clicking in "Transfer App".
To me this works. Hope help someone.
i had the same issue i deleted (mark expired) all the versions of app testing version in App TestFlight section and done the trick for me ;) attach is the screen shot of activity.
Another possible reason:
When you delete all test information from TestFlight, make sure you delete it for every language.
In the testinformation page, select every localised language and check if the form is empty.
I struggled with this for an entire day, I tried everything and finally found another workaround:
1) Expire all the builds
2) Delete all testers
3) Clear all the informations in the Testflight tab
4) Delete all langages except the main one
And finally the step which fixed the Testflight criteria for us
5) Create a new app version (no need to submit or even edit it)
now you check transfer.
Good Luck.
I know it's an old question, but it still bugs people to this day.
So the solution here, after you have removed all the testers, and expired all builds, go to TestFlight > Test Information and clear all the fields.
Also make sure you delete any localization you might have there. Give it 5 minutes, after which transfering will be possible.
Not sure if this is going to help,
Check Users and Roles > TestFlight Beta Testers
Do you have a tester who is testing the app that you want to transfer?
I have the exact same issue and I'm currently getting from Apple "our engineering team is still working diligently to have this resolved for you". I have been supplied with a workaround:
Enable TestFlight by adding a tester to a build
Then deactivate the build, by turning off TestFlight beta testing
Attempt to transfer again
unfortunately, I still haven't been able to resolve the issue.
We found that in addition to the other answers here, logging out and logging back in to iTunesConnect allowed us to continue after it was saying TestFlight was still enabled.
I was facing the same issue, going inside tranferring app console multiple times automatically fixed the issue and started showing all criteria as met.
Do the same step as #Imran Iqbal answer, if your app is Sign-in Required, uncheck Sign-in Required also, like:
then, you can transfer app.
I've exactly the same problem and could not solve it. The good news: After contacting Apple, they have confirmed a bug and they're working on a solutions. Apple confirmed also, that many developers ran into this.
Got that workaround from the support (that did not work for me):
1. Enable TestFlight by adding a tester to a build
2. Then deactivate the build, by turning off TestFlight beta testing
3. Attempt to transfer again
It looks like this is being done on purpose for new apps.
Now, A newly created app CANNOT be transferred into an account, until 14 - 21 days have passed.
An expiration period.
First, You must remove all build and user from TestFlight of that app. After its looks like below.
If you still not match last criteria than Sign Out and login again.
Creating new app version did it for me! Thanks!
The tricky solution is to enable testing again, add some tester in. The visit the TestFlight and under test flight users, you will see old active test flight users. Simple delete them.

Does Apple's TestFlight application auto update apps that external beta testers have installed?

I can see from my iTunes connect control panel how many users are on each version of the app I have in beta. When does TestFlight update those apps? Do they have to open TestFlight and manually choose to update? Does it happen automatically when they launch the app they are testing?
I can't seem to find any answer on Apple's documentation.
They have to manually update it. A push notification and email is sent to let the user know that a new version is ready to be tested, but it's up to user to open test flight and install it.
As of November 11, 2020, TestFlight version 3.0 now supports automatic updates:
Source: https://www.macrumors.com/2020/11/11/testflight-app-automatic-update/
After a while, I found a solution that works every time.
You need to remove the version from testing by selecting Not Available for Testing. Then save, approve and reselect the version you want to test and save again.
This will make all your TestFlight users receive a notification with the update (event if they have a different version installed).
It might be possible to do a force upgrade, see https://stackoverflow.com/a/12319198/330067, however I didn't find any details so far.

Resources