Force Installed App List check-in

nhennig
New Contributor

We are currently having an issue with students deleting applications, and then not being able to re-install them. Here's what is happening; we are currently suppressing the iOS App store, and only allowing our students to download apps from Self Service. We have an application that we utilize (eBackpack) that routinely has an un-repairable crashing issue. The only fix is to delete the application and reinstall it.

The issue we are encountering is that once the App is deleted, students cannot download it again. It's not in the catalog, because (I assume), the JSS still sees it as installed. My guess is that it will remain that way until the iPad performs an Installed App List check-in, which seems to only happen once daily. Since we cannot wait that long, I've been dumping these kids into a static group that is an exception for the eBackpack App, and then removing them right away. That sends an uninstall request for the App, and JSS reassigns the App for download.

So, all that for this... Is there a way to increase the frequency of the Installed App List check-in, or a way in which to force it, via a profile we could make available in Self-Service?

3 REPLIES 3

bumbletech
Contributor III

This is all just theory, but based on @GSSRyan's JSS Flask and my PHP knock-off, you could accomplish something with a scriptable web page and web clip.

Make a extension attribute for "eBackpack Status" and a smart group where the criteria IS "broken". Scope this group to the exclusions for eBackpack. You'll then distribute a Web Clip to all devices called "Fix eBackpack" to a webpage that can pass the ID of the device into the URL as a variable. This web-script would write "broken" to the "eBackpack Status" extension attribute, and update the device's inventory—I'm fairly certain an update is needed for the JSS to recalculate smart groups when dealing with extension attributes. Now your troubled devices should be in the exclusions. Now to get them out...

Getting a bit crazier (and even more theoretical) you might be able to set some sort of timer on the page, so after 60 seconds another api request is sent (or the user is told to wait and to push a second button) to revert the extension attribute back to normal, thus removing the device from the app's exclusions and triggering a re-install.

Edit: Having re-read your post, using JSS Flask would pretty much be what you need. Students delete the app, open the update inventory Web Clip, device updates, JSS sees the app is missing, puts it back in self service.

And as of JSS 9.93 there's a "Display app in Self Service after it is installed" check box on the app records now—that may be the simplest solution. It'll keep the app in self service, even if the JSS thinks it's installed.

bumbletech
Contributor III

Whoops. reposted instead of edit.

cdenesha
Valued Contributor III

@jbourdon I like the way you think.. a webclip to request Update Inventory? Now to figure out JSS Flask..