The problem is users see the GET button in all their apps even though that app is installed on their device or needs an update.
I used LSApplicationProxy private API but It seems it's broken on iOS 11 and above *.
We should find a solution to get to know what apps are installed on the user's device so we can show GET/UPDATE/OPEN appropriately.
Solutions:
Using a URL scheme is one solution
Check out other projects like Appdb or AltStore's source code to find a reliable solution.
Reverse Engineering Appstore itself on the iPhone is another solution.
NOTE: As of 5 August 2017 this project is dead. It looks like something's changed in iOS 11 that prevents the key
(private) API call from working ( allApplications on LSApplicationWorkspace ). The method works fine in the
simulator, but it returns zero results on a device running iOS 11.
The problem is users see the GET button in all their apps even though that app is installed on their device or needs an update. I used LSApplicationProxy private API but It seems it's broken on iOS 11 and above *. We should find a solution to get to know what apps are installed on the user's device so we can show GET/UPDATE/OPEN appropriately.
Solutions:
Using a URL scheme is one solution
Check out other projects like Appdb or AltStore's source code to find a reliable solution.
Reverse Engineering Appstore itself on the iPhone is another solution.