I'm going to submit my app to AppStore soon. But I'm wondering if my beta testers will still be able to use new TestFlight builds and the build from AppStore simultaneously after approval (my app supports push notifications). Is it possible without two different bundle ids?
Is the only solution to uninstall AppStore version and install new from TestFlight?
It is not possible for them to use both. When the new TestFlight build is installed it will upgrade the AppStore version that is already installed. The user will be able to re-download the AppStore version and over-write the TestFlight version. One thing to be careful of is that the old version can still read any files written by the new version. E.g. if you changed the file format in the new version then re-installing the old version may cause it to have issues if it can't read the new file format.
They will still be able to use the TestFlight builds. I believe they will have to uninstall the AppStore version.
Related
So I already uploaded my iOS app to a website for download. My friends already downloaded it into their devices. And it has been quite awhile (2 weeks).
Now I decided to publish the same app in AppStore.
Would there be any conflict for this app when downloading from website and later download it again from Appstore?
Any download/update issue?
What if I use a different bundle id?
What if I use the same bundle id?
What if I change the app version?
Can an app with the same bundle ID be uploaded to both Enterprise Account and Appstore Account?
Also other possible scenarios?
Thank you.
I am looking forward to hearing from you.
What if I use a different bundle id?
Then they're two different apps with the same name and icon, but for iOS they'll be installed in separate folders, different keychain entries, UserDefaults, etc.
What if I use the same bundle id?
If you distributed a Testflight build exported from Xcode, then they install from App Store as long as the build number is bigger only the binaries will be updated: no data loss.
What if I change the app version?
That's a new version of your app, so nothing wrong here, in fact, I'll bump the app version before sending it to Apple, so this version has a bigger version number than the Testflight ones. You should use Semantic Versioning for this.
Is there a way to have both the app store version and the TestFlight version installed at the same time on one iPhone? Can we release the ad-hoc version of the test app via the TestFlight? How to use FastLane to publish a test ad-hoc version of the app in the TestFlight?
You need to have different bundleID (mean different app) to install at same time. Other wise app will replace existing app no matter what process you used to download application.
I uploaded an app on Testflight using Xcode (Build 1.1.0) and it was available to the testers. But now this version has been expired and new versions (1.1.1 - 1.1.3) are not available to them:
I have tried opening the newer build links and it says:
I clearly have Internal testers added to my account. How can I fix this problem and make the latest builds accessible to the developers?
Follow the steps indicated in image and you can add testers and then select your app version and build for testing and added user will get notification for that.
I have a build installed from TestFlight on ios device. I am not able to open this app. I have not accepted the invite for next version. Does INSTALLED build get invalidate after new version is released from TestFlight? What is the behaviour for Internal and external testers in this case?
We have had a number of our app's TestFlight users report that after updating iOS they can't open the app. We had to send them a new build to get things working.
We are going to submit a prerelease version of an app to external users, but I wonder: what will their experience be?
The user had a production App Store version of the app on the device, and now installs a new beta via TestFlight. Will this be in-place update, with the data preserved, or a completely new install with data wiped, or will TestFlight's version be installed next to production - so that the user has the app twice?
Testing is over, and the production-ready version is submitted to the App Store. Will the tester be able to update to the new App Store version seamlessly (in-place), with the beta version's data preserved? Or is it a complete wipe? Or will beta stay on his device and he has to download a new full version from scratch?
By the way, I have submitted another question regarding version numbering beta vs. production.
According to https://developer.apple.com/testflight/
Once you accept your invitation, you’ll be able to download a
beta version of the app you’ve been invited to test. If you already
have the live app installed on your device, the beta version of the
app will replace the live version. When you’ve downloaded the beta
app, you’ll see an orange dot next to its name that identifies it as a
beta. TestFlight will notify you each time a new build is available
and provide instructions on where to focus. You can easily offer
feedback by tapping the Provide Feedback button in the App Details
view in TestFlight. An email automatically opens with pertinent app
and device details, and you can add additional details and
screenshots.
It's said that the beta version of the app will replace the live version. The reason is the beta app has exactly the same bundle identifier with the one on the App Store.
After installing the beta app, the user will still see the updates from the App Store as the live version has been installed (without losing any data) because the beta app is deployed using exactly the same certificate.
I think the things changed a while ago.
Even if you have a beta (which is signed with production certificate - remember, no AdHoc needed), the TestFlight version will function as an update for the existing app. I tested those things and can confirm no NSUser defined entities were overwritten or deleted by the TestFlight build.
For the second part: the user can preserve saved data if the application is not a major build (I mean, you cannot expect a database stored in some format to work with another new model of your app version). To be sure your app does not clear or attempt to modify previous content, put a version check on the new one. If there are data found, update to the new schema. I think this is the way to go. Anyway, you cannot have duplicated versions of the app because they are signed by the same profile.