Crash when app is updated - ios

I currently have my app on the AppStore, and current version is 1.4.
The last version was 1.3, and when users are updating from 1.3 -> 1.4 they have a crash when they use it, however I notice that if they uninstalled then reinstall it from scratch the bug disappear.
Is there anyway to simulate this behavior ?
I already try to checkout the 1.3 version, install it from Xcode on my device then update my App to 1.4 but I was not able to reproduce the crash.
Do you know any way to simulate the update of my app ?
Also, if I publish the 1.5 version on testFlight and then update my app from 1.4 Appstore to 1.5 testFlight, is my app deleted then reinstall or does it update it like it does when I did 1.3 Appstore -> 1.4 Appstore ?
Thanks for your help.

To handle this situation, first check for Sqlite and Coredata changes. If you have changed or altered any tables then you need to provide data migration.
In your case where you have not used it, check for crashlogs from iTunes portal. Symbolication of Crashlog will explain the crash in much better way.
To simulate the same, install the application of version 1.3 from store. Now sign the version 1.4 with distribution certificate and ad-hoc profile. Load it on test flight. Install this new version to upgrade from 1.3 to 1.4. This will create the same steps and you will be able to re-produce the issue.

Related

How to install previous version of an ios app?

I've developed an ios app, but now I got some crash reports which says that the app is crashing only when updated from a previous version and it goes away when uninstalling and then reinstalling that app altogether.
So I decided to reproduce the crash by going back to the older version doing some stuff and then updating it back to the latest build.
The thing is reverting back to an old commit for a switching back to the older version of the app is causing quite a lot of issues and errors which I'm unable to resolve as of now. So is there any way besides this to install the older version of the app.
I'm using Xcode 8 and Swift 4, while the previous version was built on Swift 2.3 and an older Xcode, my Testflight app only has the latest builds while there is nothing backed up on iTunes too.
The thing is reverting back to an old commit for a switching back to the older version of the app is causing quite a lot of issues and errors which I'm unable to resolve as of now
Ah, but that's not how to do it. What you want to do is not recompile the old version from source; you want the already compiled old version as an actual app. That is exactly what the archive is for! The reason we keep archives is so as to have the exact same already compiled code that has been distributed thru the store.
So just go to the Organizer window, find your old archive, and export it as an Ad Hoc build. Now you can install that on your device through the Devices window, play around with it, and then install the new version on top of it and run that and (one hopes) reproduce the problem.
A crash like this is almost always caused by data that is no longer compatible from the first version of the app.
If you don't have access to the compiled binary and don't have a way to re-install it, then your best bet is to install an old version of Xcode to install the old version of the app, and then use the new version of Xcode to install the new version of the app over it.
You may run into issues with the old version of Xcode not supporting your newer iOS version on your device. In that case, use the old version of Xcode to install the app to the simulator. Then in Xcode you open Window -> Devices and Simulators. You can download the sandbox folder for your app from the device and then copy over the exact files to a device with the new version of the app. Then when you run the new app you should be able to reproduce the issue.

Installing app as update from xcode

The Apple App Store rejected my app for an error that I'm having trouble reproducing (a button was unresponsive). I'm updating an existing app, and their suggestion to reproduce the issue is "For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue".
How do you install the app as an update to an existing version from Xcode? Is there a way to do this through ITunes or ITunes Conect?
Delete any version of the app from your device then install the current version from the App Store just like any user would.
Then use Xcode to install your development build of your update. This will overwrite the App Store version in a matter very similar to a user performing a normal update of an app. Then figure out why your updated app isn't working in this situation.

Fabric causes errors when testers try download app

My testers have problem with an app I had uploaded to Fabric Beta. During normal testing they uninstall already installed app from their devices and they download new version from Fabric. In that case everything works fine. App will download and launch properly.
Problems begins when they want to test situation when future app's users update my app from AppStore. My testers want to check if updated app will not crash.
Test case is easy:
List item
Download app from AppStore.
Launch it.
Download new version from Fabric (new version should override old)
Launch it.
App should not crash.
Problem appears in (4), Fabric shows error "download problem detected". (Note that everything works if there is no old app on device.).
Fabric has problems with overriding apps?
Fabric (1.7.7)
iOS 11
iPhone 6s Plus
PS. This test is important. Crash will appears when I change database model without migration for example.
Paul from Fabric here. Did you uninstall the App Store version of your app first? Since iOS 9, Apple changed its policy to prevent apps from being installed over the existing App Store version by 3rd parties, so you need to delete the original app before installing the Beta version. For more information, see our docs here: https://docs.fabric.io/apple/beta/tester-experience.html.
And the other reason could be if any other app is installing or updating parallelly, Fabric will not be able to install. Just faced the issue :)

Invalid Toolchain message even though app not submitted with beta software

I am trying to submit a project to the app store. I accidently opened it in the latest Xcode Beta - but did not save or change anything.
I submitted the app with Xcode 7.3.1 and when I attempt to submit the app for review I get the message: "New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, macOS, and iOS SDK. Don't submit apps built with beta software including beta macOS builds."
If I check the Info.plist of the archive it also mentions me using the public version of Xcode
<key>DefaultToolchainInfo</key>
<dict>
<key>DisplayName</key>
<string>Xcode 7.3.1 Default</string>
<key>Identifier</key>
<string>com.apple.dt.toolchain.XcodeDefault</string>
</dict>
The Xcode beta version was not open when submitting and I also tried restarting and then resubmitting. Btw I am running El Cap 10.11.6
What can I do to fix this?
Thanks
Did you install yesterday's Security Update? I have a theory, that this update altered the internal version number from 10.11.6 (15G31) to 10.11.6 (15G1004), and they have not added this version number to the list of allowed stable OS builds on iTunes Connect.
Fairly certain it's the Security Update.
I tried the known hack of altering the OS build to 15G31 in SystemVersion.plist, but this no longer seems to work.
Reinstalling Xcode 7.3.1 was also a waste of time.
Luckily I had a machine that I had not yet done Security Update 2016-001 on. Moved the code over there, archived and uploaded, and this went fine.
I got same issue and the issue just got fixed - I have submitted my app for review successfully 5 minutes ago!
It was because iTunes team did not synchronise with latest macOS version security update yet and they finished synchronisation just now!
Please go ahead and try re-submitting your app!
I am seeing this also, there was a recent security update to El Cap that might be related, or Apple is in the process of making changes for iOS10 Xcode 8 and have messed up something.
If you need to submit, I would go ahead and submit and if you get a rejection, explain it to Apple then.
I have uploaded my iOS binary installing El Capitan on a virtual machine, disabling system updates, installing Xcode, importing my developer profile, and building my App there.
I just spent like 2-3 hours downloading the base El Capitan (10.11.6) from the App Store and setting up VMware Fusion to build our project in... including manually regenerating and switching all of the certificates and provisioning profiles twice (to there and back to the host machine).
I can conclude that this does solve the issue because the App Store El Capitan installer does not (yet) include the Security Update, which bumps the macOS build number to one that is NOT whitelisted on iTunes Connect, as some have suggested.
Super frustrating, but at least a solution is available for now. 😖
Check out the Xcode Release Notes and see if your version of Xcode has: "Support for app archives depreciated", like mine did.

How should we set up distribution of iOS app to allow regression testing in future?

We do all of our iOS app beta and normal distribution through iTunesConnect. However, there are times that we want to install an older version of our app on a device so that we can test a database migration or older API communication.
Older versions on iTunesConnect expire after 60 days, but we may want to install a version several months old.
Do we have to set up a parallel distribution of our app to Fabric so we can go back to the previous versions? Is there a better way?
If you use git, you can create a tag at the commit that is the one that was released as version x.
Next time you want to install it, you can checkout that tag, and run it on your device. If you need people installing it without Xcode, you have to create n (internal) website where your testers can download the .ipa and install it on their i-devices.

Resources