How do iphone apps know about other apps? - ios

I recently downloaded an app (Overkill) and they have an in game "virtual currency" called "overkill medals" or "OM". You can use the in-app purchase system to buy more OM, or you can earn it, through their service called "Tapjoy."
Tapjoy (inside the Overkill app) brings up a menu with eligible apps, and a link to the iTunes store to download it and requires you to "download and open" the app in order to earn your OM.
How does this app know that I have downloaded and opened the app, in order to award me the OM?
Edit: It also seems to know when I had the app already

The app is likely checking to see if another app has registered a custom URL scheme, by calling UIApplication canOpenURL, against a list of known schemes dolled out by Tapjoy to each implementor.

The isn't anything within the Apple's iOS SDK that would allow this, so in all likelihood each of these apps is registering with a web service. The server is tracking installation and use of the various apps by relating the unique device id.

Related

Webviews on iOS

The company, that I work for, wants to develop mobile apps using react native. The idea is to reuse the content on the websites instead of creating native views.
The current decision is to implement the apps like follows:
Create a react native app with bottom navigation and webviews as the
content.
Each time the user clicks on a different section of the
navigation, the webview loads a different page of the website into the web
view.
For example the login functionality will be the login page from the website in a webview.
Is this sort of apps allowed to be published in the appStore? My thinking is that the app will not be allowed because the content of the pages can be changed!
No, you are not allowed to wrap a web app in a WebView and release it apple app store (btw: Google Play may reject your app too eventually).
you can make this if the web app is a small part of your whole app (for example: some food delivery apps use a WebView for chat with support, which is totally acceptable)
4.2 Minimum Functionality
Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store. If your App doesn’t provide some sort of lasting entertainment value or adequate utility, it may not be accepted. Apps that are simply a song or movie should be submitted to the iTunes Store. Apps that are simply a book or game guide should be submitted to the Apple Books Store.
you may get this rejection letter:
If you develop such an app you will get the following feedback from apple:
We found that the experience your app provides is not sufficiently different from a web browsing experience, as it would be by incorporating native iOS functionality.
While your app content may differ from your web site or other existing sites, the experience it provides does not differ significantly from the general experience of using Safari, as required by the App Store Review Guidelines.
You may wish to provide convenient access to a web property for a select or niche group of users - and may enhance that experience with features such as Push Notifications. However, such apps do not include enough native iOS functionality to be appropriate for the App Store. As an alternative, you may wish to provide instructions to your users on how to create a Safari web clip to add to their iOS device Home Screen. Or, if you would like to share the app with a select group of users, we recommend the Ad Hoc distribution method. See the iOS Provisioning Portal for details on Ad Hoc Distribution.
We encourage you to review your app concept and evaluate whether you can incorporate additional features to enhance the user experience.
As apple guidelines says that:
4.2 Minimum Functionality
Your app should include features, content, and UI that elevate it beyond a repackaged website. If your app is not particularly useful, unique, or “app-like,” it doesn’t belong on the App Store. If your App doesn't provide some sort of lasting entertainment value, or is just plain creepy, it may not be accepted. Apps that are simply a song or movie should be submitted to the iTunes Store. Apps that are simply a book or game guide should be submitted to the iBooks Store.

How to check whether apps that enable off-store download but don’t require full jailbreak are installed: iNoJB, TweakBox, Zestia, Emus4u in Ios device

I am trying to detect the jail break on the application startup and don't know how to check for the application other then the cydia like Tweakbox, iNoJB etc are installed or not.
This question is different from other jailbreak question which detect for only cydia app not tweakbox and other is because i want to look all the application like cydia not just only cydia. and other answers in stack overflow are just checking for the cydia application and access for certain files that exist in sandbox
Those apps have nothing to do with jailbreak, full or not. All of them are properly signed iOS apps. For example, GBA4iOS is signed with "Meridian Medical Network Corp." enterprise certificate allowing it to be installed on any device. That violates ToS and can get your account terminated but works.
Given that and the fact that recent iOS versions closed private APIs for getting a list of installed applications, there's no way to achieve what you want. Furthermore, Tweakbox, iNoJB, AppValley are not even apps. They're websites with links to enterprise signed applications. Some of them require you to install configuration profile but its only purpose is to put a web link on the SpringBoard that leads to their website. You can download the profile and check its contents in any text editor, it's just a plist with signature at the end.
There are two methods:
Download Apps without App Store via iOSEmus App
Download Apps without App Store via AppValley
Method 1; iOSEmus is designed to enable users to download different kinds of apps on your devices without jailbreak and it won’t even prompt people to enter their Apple ID.
Method 2; AppValley is one of the popular tools that enables users to download countless apps without jailbreak. It also requires no Apple ID. With it, you can get as many paid apps as you want for free.

iOS App Rejection due to private API call viewControllerForView:, Facebook API

My app was rejected because
The use of non-public APIs is not permitted on the App Store because
it can lead to a poor user experience should these APIs change.
in the method
viewControllerForView:
I asked where I used viewControllerForView: and they responded
“viewControllerForView:” was found in the methods:
-[FBSDKLikeButton _handleTap:] and -[FBSDKLikeButton _like:].
My FBSDKLoginKit, FBSDKCoreKit and FBSDKCoreKit pods are all at 4.15.1 (the latest version). How should I go about fixing this?
You don´t need to make any changes in your code, read this post from Facebook developers of how to solve it.
After integrating our SDK into your iOS app, you will need to submit
your app to Apple for review. As part of this review process, you will
be asked if your app uses the Advertising Identifier (IDFA). Please
check "Yes". You will then be asked how your app makes use of it. The
question will take this form: This app uses the Advertising Identifier
to (select all that apply)?
- Serve advertisements within the app
- Attribute this app installation to a previously served advertisement
- Attribute an action taken within this app to a previously served advertisement
If you will be using the Audience Network framework, you must select
the first option. If you are using our core framework to track
install attribution and app events, please select the second and third
options. If you are using both, select all three.
You will also be asked to check a box to confirm that your app honors
a user's Limit Ad Tracking setting in iOS. The Facebook SDK honors the
iOS Limited Ad Tracking Setting. When a person enables Limited Ad
Tracking, Facebook only uses data obtained through the use of the
Advertising Identifier for “Limited Advertising Purposes” as defined
by the iOS Developer Program License Agreement. Please make sure check
this box when prompted.
Marking these questions in this way will help ensure a smooth review
process

Get a list of user's downloaded app on iOS

Can ios apps get a data on which applications users have downloaded to their device similar to what android allows?
No this is not possible in iOS. iOS is focused on user privacy and security and giving developers information about which apps have been downloaded raises major privacy concerns.
This is not possible from code within the app. User information is kept private on purpose.
What you can do if your app is published is login to iTunes connect with your developer account and see data on your app for sessions, installs, and crashes.
I don't recommend this, but you could look into CNContacts or Address Book to see users data by getting their vCard and saving it as some analytics system. This will most likely cause you to get rejected unless you're very clear on what you're doing in the app.

iOS 8 Suggested Apps - How does it work?

Over the past little while I’ve been working with a client who would like to leverage Apple’s new Suggested App feature on iOS 8. The client's goal was to display a suggest app lock screen notification any time a person passes by a specific geo-location. After spending some time trying to find a concrete answer to what level of control (if any) the client would have over Apple’s Suggest App feature, it was decided to send our questions directly to Apple.
Below is copy of the questions I sent to Apple.
Hello,
For our next app release, my team and I would like to leverage Apple's Suggest App feature provided in iOS 8.
We've taken a look through the iTunes Connect portal and we haven't been able to find a configuration panel anywhere which allows us to control when/where our app should appear as a suggested app.
Questions:
Is it possible for us to specify the conditions that out app will appear as a suggested app for users who haven't downloaded it yet?
Can we specify a geo-fence that will display our app as a suggested app on a user's lock screen?
If we have no control over Apple's Suggested App configuration, under what conditions will our iOS appear on a user's lock screen as a suggested app?
STEPS TO REPRODUCE
Turn on your phone
Enable suggested apps
Enable 3G
Lock your screen
Walk past a region.
Expected Result: A suggested app appears on the iPhone lock screen.
Here is the response I received directly from Apple Developer Support Team:
Hello,
Location relevant Apps are recommended on the lock screen and in the App Store based on a number of factors, including their popularity at the location, and there is no mechanism or process by which an App developer can add their App to the list of recommended Apps.
However, if your iOS App is directly related to the location or venue (such as a mall guide iOS App which is published by the mall owner or operator), and you believe your iOS App’s relevance warrants it being included the list of recommended Apps, then you are encouraged to submit an enhancement request via http://bugreport.apple.com/, and request that Apple consider whether your iOS App should be included in the list of recommended Apps for that location.
You should provide as much detail in the ’enhancement request' about the App and venue/location as possible, such as the App ID, App Name, URL to the App on the App Store, venue name, venue location (address & lat/lon), the relevance (if any) of your iOS App to the venue/location, and relationship (if any) between you as the developer and the owner/operator of the venue/location.
Submission of an enhancement request does not guarantee that a particular iOS App will be added to the list of recommended Apps for a venue or location, and the sole feedback from Apple on the request will come through the http://bugreport.apple.com/ bug report system.
Regards,
Apple Developer Technical Support

Resources