Get the version of an app programatically in iOS - ios

Is there a way to get the version of other app(outside of my control) in my app? I know it may not comply with iOS sandbox rules, but is it possible to do so? And what if i can control the "other app"? All the apps mentioned will not be published on App Store, only just for our own guys.

No, and there is no reason to get it.
(Of course questions and answers asumes by default a non-jailbreaked environment)

Related

Change LSApplicationQueriesSchemes at Runtime

A friend asked me to find a way to change the plist property LSApplicationQueriesSchemes from within the iOS app itself to added new schema url at runtime. The app is distributed with an Enterprise account. I told him this is impossible for me, but I don't find anything about it to provide an evidence. Could someone provide me some useful information (e.g. a link) to support my thought?
It's not possible. This is a measure Apple explicitly added to prevent developers from abusing canOpenURL to figure out what apps users had installed. Certain company was misusing this method - even updating their list dynamically - to learn what apps users had and installed and because of this Apple decided that your app should try to open other apps that it has defined at development time only. Even if you did find a way around this, Apple would most definitely fix it in the next release and break the app from that point onwards. Furthermore, the Info.plist is in your App Bundle, which is read-only.

How to get a list of installed IOS applications

I want to know is it possible to get a list of installed application on IOS.
(in android, it is possible using package manager.)
And if it possible, How could i do?
Please help.
While possible, by calling canOpenURL multiple times, Apple has recently begun rejecting apps that do so. Even then, it's impossible to do so with apps that don't have a published URL scheme.
It is possible but you need to use private APIs which make your app rejected by Apple.
Try these:
https://stackoverflow.com/a/27833902
https://stackoverflow.com/a/12178561

Retrieving UDID via private API

I'm looking for a way to retrieve the UDID on devices running iOS 6+ (Enterprise deployment only - no app store limitations).
Calling the (now private) method uniqueIdentifier returns the 'vendorIdentifier' starting with 'FFFFFFF'. Unfortunately thats not what I want.
Any ideas? Is there another private method or something?
Thanks in advance.
I recommend you reading this article. To sum up:
The previously deprecated uniqueIdentifier now works like vendorIdentifier on iOS 7+, so it's no longer usable even for Enterprise Apps
OpenUDID cannot be shared between Applications on iOS 7+ and now can change. It's still usable but no longer recommended.
The vendorIdentifier hasn't changed, but it's not recommended for Enterprise Apps because it can change when updating the App.
The new advertisingIdentifier API is the way to go for new Apps. It's the same for all Apps and should not change frequently, but the user can reset it in the settings page.
Edit: Website udid.io obtains the real Device UDID instead of the obfuscated one if you need it for anything outside your App. If you need the UDID from within the App, see my answer above.
You can get a Unique UDID via this method using private api. Follow this link
Look for the code in accepted answer.
Sorry, but Apple warned it would be deprecated and it has been. I've had the same headache myself.
I can't help you identify the device in the same way Apple do, but you can always generate an unique UUID on app launch and stash that away in KeyChain. It won't be perfect, but it will persist between installations and will be unique to the device. As far as I know, that's the current solution

iOS Changing App icon at runtime

I want to change my app icon at runtime. I read other similar threads on SO, and they say that it is not possible using Apple sanctioned APIs. One of the responses mentioned that its possible using restricted APIs, but did not elaborate.
I understand that if I use restricted APIs, my application scope will be reduced to jail-broken devices only. I'm ok with that, but how do I implement this feature.
Sorry, I cannot indicate any research effort for this question because I have no idea how to go about it or even how to get started on this.
Thanks in advance :)
Although this is an old question, I recently discovered this is now possible, as of iOS 10.3:
https://developer.apple.com/documentation/uikit/uiapplication/2806818-setalternateiconname
...using the UIApplication.setAlternateIconName(_:completionHandler:) API.
Note however you are limited to using icons which are already shipped as part of the app bundle.

Zynga Fontlabel is accepted by AppStore?

I need to handle fonts in iOS at runtime. The only solution I found is zynga FontLabel: https://github.com/zynga/FontLabel.
I am not sure, if using this solution, will affect the acceptance of my App into AppStore. So my question is, will using this solution ruin my chance of getting my App into AppStore? Any experience with that?
Thx
FontLabel will not prevent you from getting listed on the app store. It doesn't use any private frameworks or alone violate any App Store policies.
Many apps use it on the App Store today without an issue.

Resources