Is there an easier way to get the path to an iOS application, than searching /var/mobile/Applications
?
I know both the name and the bundle identifier, however the path is not consistent on different iOS devices.
This is for use in a jailbreak tweak, so I can use PrivateFrameworks and other code not allowed by Apple.
If running in an app, you can define:
and link to the
SpringboardServices
framework.If you're running code that executes in Springboard, this should be fairly simple. Get
SBApplicationController
'ssharedInstance
, then get theSBApplication
you're looking for with theapplicationWithDisplayIdentifier:
method (or using whatever method you choose). TheSBApplication
class contains properties forpath
,containerPath
, andbundle
(among many others), one of which should be what you're looking for. I haven't tried this myself, so I can't guarantee it'll work, but based on a quick glance at the Springboard header files (you can take a look here, or dump the header files yourself), it should work.On the other hand, if you're not running from Springboard (ie. if you're making an actual App Store-style application), then you may be out of luck. You could look into inter-process communication with Springboard and see if something can be done there, but it'd probably be more trouble than it's worth.
Or you can use the library AppList and then it's:
In this case it's doing what Andrew R. mentions in his answer for you. (I assume the same requirements are necessary, i.e. must be running from Springboard.)
Update: This no longer seems to be working on iOS 11.