TestFlight gives users null app after uninstalling - ios

Some of our users are running into an issue in a beta app of ours. They're attempting to unisntall an app (iOS 9.1, iPad Air) and finding a null app left over after uninstall. From one of the reports:
I then tried deleting the app through GameCenter. The GameCenter app
asked me if I wanted to uninstall the app as well, and I said yes.
However, I noticed that the app was still present on the home screen,
so I deleted it there as well.
Now, TestFlight says “Open”, not “Install”, even though the game is
not present on the home screen.
It appears that the deleted app is now a null package on the phone, which doesn't show up on the home screen. They can't install the app again in TestFlight because TestFlight believes it's already installed.
From their more detailed report:
In Settings->General->Storage->Manage Storage, I found a 67.5 MB
“null” app. I deleted it, and it goes away - but if I go back into
the Manage Storage page, it reappears. I tried hard-resetting, but no
difference.
In iExplore, I can see that com.XXXXXXXX.XXXXXXX is present, but I
can’t interact with it.
In XCode, I see it on the list of installed apps (under
Window->Devices, with latest OSX and XCode). When I delete it, it
goes away and immediately returns. In the log, I see that the
uninstall is requested, and then this error: [MIContainer
allContainersForIdentifier:options:error:]: 348: No bundle container
found for identifier com.XXXXXXXX.XXXXXXX (this was the app ID) and
then a warning that no uninstall occurred.
I'm looking for feedback from other app developers who have run into this issue. How can users remove the app from device, and re-install from TestFlight?

Related

My WatchOS2 app stuck on launch with Spinner

I built a demo app on WatchOS 2.0.1, on every launch it was getting stuck with App name on Top Left corner and spinner in middle of screen on iWatch (38mm). Watch is brand new and have only native apps installed till now so there should not be any issue with memory.
I tried many times to open the app but it was repeatedly closing automatically after showing Spinner for sometime. After lots of trial my Apps screen got visible and then after on every launch it worked fine without sticking on launch. I tried to double check by Force quit my app using Power button but it worked fine then after.
Then I uninstalled the app from watch and reinstalled it and same thing happened again. It started sticking. Do anyone have Idea on this? Please help on this part.
WatchOS Version : 2.0.1
Your app is crashing, as evidenced by it "automatically closing."
You should be able to track down the reason for the crash by examining the crash report (which can be found in the Xcode Window -> Devices pane). Alternately, you should be able to interactively debug this by running the app within Xcode.
As for it eventually no longer crashing until you deleted and reinstalled the app, the app reached a state where the reason for the crash no longer occurred. This probably is related to needing to handle some error pertaining to a path or file which it is finally able to create or access. Deleting the app recreated the condition where it repeatedly crashed again.

TestFlight alert while testing update: You already have this app installed

I was trying to test update scenario from live App Store app build to RC using TestFlight, but TestFlight gives me alert "You already have this app installed. Do you want to replace..." (see below screenshot). After confirmation, all data from App Store version is gone.
Steps I do:
Install live app from the App Store
Login and do some operations to get data in the app and Keychain
Go to TestFlight iOS app
Tap "Install" button in TestFlight -> alert "You already have this app installed" appears
If I tap choose Install, new build is installed
Result:
The app's content including Shared Container (data shared with Extensions) and Keychain are completely wiped when I open the app again
Edit: The alert in TestFlight appears with any app (I have tried multiple different apps from different dev accounts). The actual data deletion happens only for some.
My question:
Is this expected behaviour from TestFlight or is it any issue with my app? I'm not aware of any changes between versions which could cause any issues.
I believe this was not happening before (the last time I tried was few weeks ago).
I couldn't find any documentation or release notes regarding TestFlight app behaviour or changes.
Did anyone experience the same issue? Or do you know any resources describing this behaviour?
Thanks for any answers!
After long research, trials and errors, creating radar and releasing update to App Store, I have an answer:
Alert is there always and does not have relation to losing data.
The alert with warning about possible lose of data is being displayed always for any app being installed from TestFlight over the Non TestFlight Build.
This was true for any of multiple apps I have tried.
identifierForVendor changes when overwriting app with TestFlight build.
When you have App Store version of the app installed and overwrite it with build from TestFlight, result of [[UIDevice currentDevice] identifierForVendor] changes
This is unexpected since it is not mentioned in the documentation (see below)
In my case unexpected change of identifierForVendor was causing "loose of data" which wasn't actual lose of data, but it is happening only for TestFlight builds which you cannot debug, so it was hard to find the issue.
Documentation of [[UIDevice currentDevice] identifierForVendor] says:
The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution.
as per best of my knowledge,
if you have installed application from App Store (suppose of version number 1.0) on your device, and lets say your are again downloading/installing same app with same version number 1.0 from TestFlight, you will get above message.
This is because you are trying to install app with same version and bundle id that already does exists on device.Offcourse you will lose data/settings of app, as its replacing your app not updating.I also gone through this scenario.
If you have the full version of an app installed on your device and you install the same Beta App, your app data may be corrupted or lost and may not be recoverable. You should back up your information before installing a Beta App.
http://www.apple.com/legal/internet-services/itunes/testflight/sren/terms.html
I don't know how this happens

iOS 8.1.3 - Enterprise distribution not working

we have a few apps that we install on our devices using an Enterprise distribution profile. To install an app, we use the usual itms-services link:
itms-services://?action=download-manifest&url=...
We use the same link to install updates to the apps.
Ever since this latest iOS update (8.1.3) something strange is happening with the link. On some devices, and only for one or two of the apps, the link does absolutely nothing. It pops up the dialog with Install or Cancel, but when the user presses Install nothing happens. The app's icon doesn't get the loading overlay, nothing. To make matters worse, all the apps on all the devices have been installed the exact same way, yet it only happens to some apps on some devices. An app that installs fine on one device will have this problem on another.
On one of the devices that are having this problem, I even tried uninstalling the app, and then running the link again, but still nothing happens. In fact, now I can't install the app at all on that device, since nothing happens when the link is clicked!
Things I've tried:
Restarting the device
Removing all profiles from the device
Does anyone know what's going on, and how to fix it?
Ok, so I found a hacky way around this bug. If I change the bundle ID in the manifest file to something different, such as adding "-ios8fix" or something to the end, then it'll install. It doesn't look as nice, since during the installation there's a second app icon on the screen. But once the installation is finished, the second icon disappears.
One benefit of doing it this way though, is that if the installation fails the user can still use the old version of the app, since there'll temporarily be 2 icons, one for the old version, and one for the update...

iOS 8 enterprise apps are stuck in limbo inside the device

In trying to release a new update to one of my enterprise iOS apps, I'm finding that the OTA download is failing. It will give me the "Would you like to install 'xxx'" alert, and tapping 'Install' is about as far as it will go. There's no indication that anything is happening. This occurs on my iPhone 6 and iPad both running the most recent release of iOS 8.
Running the devices on the iPhone Configuration Utility, it shows the list of installed apps, and the one app that is refusing to install has an "Install" button where all the others have "Uninstall." In the screen cap below you'll see the renamed bundle and the original bundle.
When I click the "Install" button, the iPhone Configuration Utility crashes.
I managed to get it to work using a workaround that I found elsewhere on StackOverflow, which requires renaming the app's Bundle Identifier, but it still seems like a pi$$-poor way to do it.
It seems clear that the app is somehow stuck in limbo, showing up on the app list but not showing up on the iPhone screen, and also is refusing to be overwritten. My question is, is there a way to purge the old app from the iPhone's memory, and possibly reload it using the original Bundle Identifier?
Apple still hasn't fixed this correctly in even the latest versions. There are several manifestations: the app does download, but the device doesn't quit the calling app, so you don't know if the app downloads or not. If the app was never on your device before, it usually downloads. If it was there before, and was deleted, it doesn't download. If the downloaded app is already running in the background, or you're doing in-app downloading, it often doesn't download because it doesn't want to replace a running app. I usually start the download, then switch immediately to the springboard to watch it download. If I see the clock dial on the app icon, then I know it's downloading. Changing the bundle is not a good thing, not to mention not giving any user feedback when you tap "Install."
As far as updating the app from the in app prompt.
It's a problem with apple/ios8. They aren't exiting the app after the install. If you quickly tap the home button after you hit install. Occasionally you will get a successful download.
For future use you could find out a way to use exit which will kill the app but apple warns against using exit due to poor user experience. But if apple isn't providing a good user experience in the first place for this process I think this warrants the use imho.

iOS App Store shows iCloud button instead of Install button

When users who previously had our iOS 6 app installed on their iPhone, go to the App Store to reinstall our app, they see an iCloud button instead of the INSTALL button.
When they push the iCloud button the App Store installs the version of our app they installed in the past, instead of the latest version. Immediately after the installation the iCloud button changes into an UPDATE button offering to update the app to the latest version.
How can we prevent this behaviour, because the user actually downloads our app twice?
Our app is for free, so there is no need to install a "previously purchased" version.
Also if the user presses the UPDATE button fast, things get screwed up. For some reason this leads to our app being unable to save data to the Documents folder.
This is new behaviour. Have never seen this in the past. Anyone got a clue? The name of our app is Rogerthat
Thanks
I think this issue could be caused if the version set in iTunes Connect and the version set in the info.plist don't match up. For example, we've seen this issue when the version in iTunes Connect was set to 1.01 and the version in the info.plist as 1.0.1

Resources