My goal is to build a lockscreen application on iOS platform. For example, whenever a user tries to unlock the phone my app will be running.
The main purpose is let's say user wants to play a social media like Twitter, Facebook. User has to go through my application first before playing those social medias.
It is something like web blocker or something. I know that iOS is very strict but just wondering if it is possible or not.
These kinds of permissions are not allowed , securing the user privacy.
Please go through the list which shows what permissions we can get from user.
Apart from this , user cannot have alternative control over iPhone application.
iOS helps prevent apps from accessing a user’s personal information
without permission. Additionally, in Settings, users can see which
apps they have permitted to access certain information, as well as
grant or revoke any future access. This includes access to:
Contacts
Calendars
Reminders
Photos
Motion activity and fitness
Location Services
Apple Music
Your music and video activity
Social media accounts, such as Twitter and Facebook
Microphone
Camera
HomeKit
Health
Speech recognition
Bluetooth sharing
Your media library
If the user signs in to iCloud, apps are granted access by default to
iCloud Drive. Users may control each app’s access under iCloud in
Settings. Additionally, iOS provides restrictions that prevent data
movement between apps and accounts installed by an MDM solution and
those installed by the user.
Related
We use a third-party analytics library in our app. I'd like to automatically opt users out of these analytics if they have the Privacy > Analytics > Share With App Developers switch turned off.
I understand that this is only for opting users out of Apple forwarding on the analytics they collect, but I feel the intention is clear: that the user doesn't want the developer to receive analytics, no matter the source.
Is there an API to check for this setting or is the only option to re-prompt the user in the app as to whether they want to send analytics?
For that matter is there a way to detect if the user has opted out of all analytics? The intention is less clear here as the description specifically says "Help Apple improve" but again it feels a little weird to prompt the user to send analytics if they've opted out at this level.
Is there an API to check for this setting or is the only option to re-prompt the user in the app as to whether they want to send analytics?
No, Apple doesn't share any information related to user privacy.
Firstly I think that we, all the developers, need these Analytics, User Engagement & Crash Logs.
Having said that no App/Developer should ever violate the rights of user.
There comes Apple Privacy Policy to get user permission for Apple App Analytics to be sent to the App Developers enrolled in Apple Developer Program. But that's just Apple taking care of their legalities. As a developer, we should abide by the legal policies of our Company and abide by the App Store policies and policies of any third party libraries we are using in our app.
For example:
Your App/Company must have a Privacy Policy page & Terms & Condition Page which you give to Apple in the iTunesConnect before uploading the App. So, when the user is downloading the App, he/she has to agree to them.
You are using Crashlytics in your app. You should abide by https://firebase.google.com/terms/crashlytics.
Reference for more reading: How to make your App's privacy policy complaint to data protection and privacy laws
I just got mail from Apple stating that
"Data use & sharing" : Your app uses analytics software to collect and send user or device data to a third party without the user's consent. Apps must request explicit user consent and provide a clear visual indication when recording, logging, or otherwise making a record of user activity. This includes any use of the device camera, microphone, or other user inputs.
For your app to remain available on the App Store, you must remove any code, frameworks, or SDKs that collect, record or share a users data and resubmit your app for review.
Please let us know what is the recommended way to handle it,
My suggestions:
Can we just remove the data tracking(only for analytics & statistics which is the key to business) 3rd party SDKs ?
(or)
Just add permission alert stating that we are collecting information for so and so permission and track information ?
Apple has started a crackdown on the apps which tracks user activity through user inputs, screen recording etc.
The best way to get your app approved is to remove any code or the third party sdks which tracks user activity. I resubmitted an app today by removing a third party library and it got approved right away.
But if statistics are the key to your business then you can take a hint from here.
Apps must request explicit user consent and provide a clear visual indication when recording, logging, or otherwise making a record of user activity.
If you use your own privacy policy then clearly state how you track your user and how user's data will be used. And in addition to that, also show some kind of alert in your app that how the user data will be used (maybe through a UIPageViewController)
We ended up keeping all of our analytics (MixPanel, Google, Crashlytics, Facebook, AppsFlyer).
We only removed AppSee - because of the screen recording, and got approved within 10 hours.
My conclusion is that the only thing to remove is the screen recoding and all he rest can remain as is.
I am creating an iPhone app that will be free with the purchase of a set of headphones. The idea at this point is that a passcode will be included with the headphones that will let the user enable the app which is a DSP app with filter settings specifically for the headphones. The passcode only needs to be entered once and then the app will be permanently enabled. I assume that I will have to use my own server to check the passcode and return an authorization to the device. Does anyone have any advice on how to implement this functionality?
You could easily/quickly implement this feature using one of the PaaS (Platform as a Service) providers out there. Parse, StackMob, Azure, etc. They provide the database in the cloud and the REST API to access it, and you simply make a read on the password table to see if the entry exists (using the provider API). These services are very inexpensive and you could use the free tier until you get meaningful volume.
However, note my previous comment, that this would not be approved as an app for violating the App Store Guidelines.
Apps that arbitrarily restrict which users may use the App, such as by
location or carrier, may be rejected
Apps that unlock or enable additional features or functionality with
mechanisms other than the App Store will be rejected
If I wanted to get access to the metadata on the music stored in a user's iTunes library via MPMediaQuery, would that require the user to give their permission, in a similar way apps request access to Photos, Contacts, etc.?
I've never seen an app ask for access to my iTunes library, but I'm wondering whether that's because it's implicit, or it's impossible. I'd perhaps like to do some scanning and make some assumptions about the user's musical taste based on the information, preferably without them knowing or needing to consent to it.
Accessing the song list does not require a permission (iOS6 and iOS7).
According to Apple (link for iOS6), Data Privacy section,
In addition to location data, the system now asks the user’s
permission before allowing third-party apps to access certain user
data, including: Contacts, Calendars, Reminders, Photo Library.
This policy has not changed for the newly-released iOS7:
iOS is designed to put your privacy first. For example, if an app
wants your location information or data from Calendar, Contacts,
Reminders, or Photos, it needs your permission first.
I am using facebook iOS ads to send install to my app.
I am using the following code to track the installs.
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSession.activeSession handleDidBecomeActive];
[FBSettings publishInstall:[FBSession defaultAppID]];
}
Is there anyway to track that a new install actually came from Facebook? I want to plug it into Flurry and track what quality of user I am getting.
Typically when you track ad providers (be it facebook, greystripe, adcolony, etc) they will record some sort of device identifier for every device that clicks the ad. In the past it was UDID but moving forward Apple is pushing their advertiser identifier.
You will need to store your own list of identifiers for every device that installed your app and then cross reference with the list of devices that clicked on the advertisement. The ad provider should be able to provide this list, including Facebook.
I am not sure if Flurry supports making cohorts by advertiser but I do know Kontagent has some admin tools which allow you to drop in reports from the ad networks to enable tracking by provider. Alternatively you could always roll your own.
There is no way.
You could check wether the user liked your Fanpage or stuff like that, but you don't know the link the user opening the AppStore came from.
A possibility could be to not directly link the ad to the AppsStore, but link it via a private proxy that recognizes a user clicked on the link and if shortly after this time a user downloaded your app it may be a Facebook User that clicked the Ad
I figure you has read the SDK documentation.
If you go to Set up your app to measure mobile app install ads you can read that this information is stored in your App Dashboard.
In this link is explained clearly how the "app installs ads" works and how to manage this information.
Unfortunately isn't possible to export this information directly from your app to be sent to Flurry.
What you're talking about is attributing the source of installs for a mobile advertising campaign. In order to do this, you need to be able to determine that the person who installed the app was the same person that clicked on the relevant ad (on Facebook, or whatever other ad provider). In order to do this, you need an identifier that uniquely identifies the user--in the past this was the UDID, now it's moving towards the advertising identifier.
Many ad providers will calculate this figure for you if you report to them whenever a use installs the app for any reason, by comparing all the identifiers of the installs you send them with the identifiers of the users that clicked their ads.