AppStore GEO restrict app to specific USA states - ios

I want to publish an iOS application which should be available in specific USA states only. What I have found till now is how to specify territory or country on iTunesConnect, but I didn't find how to select some states to be available in them only.
Is this doable on iTunesConnect? or even through the app itself?
Also I have found that it is possible to use Geofencing to determine some regions which the code can monitor user's location to detect entering/exiting to/from them.
Is there an easy way to detect this info only once - may be while installing the app or even when the app is first launched - without need to seep track of user's location?

Related

How to track numbers of iOS app uninstalls?

I've been trying to monitor the numbers of uninstall but couldn't find a reliable way.
I tried to check with APNS status but apple doesn't provide any
status in response.
I tried to find any API (to get number of uninstalls) provided by
apple but still no luck.
I started tracking for inactive users but it still is not 100%
accurate and it only gives me inactive users.
There is no delegate method which fires when the app is being deleted.
No uninstall information in appstore sales and trends as well.
Later I checked AppsFlyer is providing this capability to track numbers of uninstalls.
Can anyone explain how reliable is AppsFlyer uninstall tracking and why ?
There is no official method from Apple to track app uninstalls — this would have user privacy implications, and Apple has built their reputation around protecting user privacy. Given the history of public outrage around this sort of tracking, it's unlikely Apple will ever allow it.
AppsFlyer (and other companies that claim to provide 'uninstall tracking') use silent push notifications to do it. Essentially, they ping the device regularly and report an 'uninstall' if the push notification is not successfully delivered.
There are a couple of major issues with this approach:
It's unreliable. If the user doesn't allow push notifications, or turns them off at some point after installation, you'll get drowned in false positives.
It's against Apple's rules. The App Store Review Guidelines say this:
4.5.4 Push Notifications must not be required for the app to function, and should not be used for advertising, promotions, or direct marketing purposes or to send sensitive personal or confidential information. Abuse of these services may result in revocation of your privileges.
AppsFlyer actually got in some public hot water for this product last year, and I've heard through the grapevine that Apple intends to crack down on similar services at some point in the near future.
Ultimately, an uninstall is little different from a user who has the app installed but never engages with it. You're probably better off focusing your efforts on building an awesome user experience that improves acquisition and retention, rather than worrying about how to measure a metric that is specifically on Apple's blacklist.
Now Apple offer this information:
Deletions
See how many users remove your app from devices running iOS 12.3 or later. Measure App Deletions to better understand how users react to changes in your app, such as content updates, price adjustments, or crashes. Compare App Deletions by sources or groups of users to see which types of users are more likely to uninstall your app.
https://developer.apple.com/app-store-connect/analytics/
The current path in Oct 2021 to check out deletions in App Store Connect is shown as below:
Note,
That is the number of times your app has been deleted on devices running iOS 12.3, tvOS 13.0, or macOS 10.15.1 or later.
Deletions only includes data from users who have agreed to share their diagnostics and usage information with app developers.
Go to https://appstoreconnect.apple.com/
Select your app
Go to Analytics
Go to Source
Select deletion in right side dropdown

Where on iTunes Connect I can add additional App info?

I distributed an iOS app on AppStore, but the app was rejected because we are requesting permission for user location in background.
I already answered the reviewer many times explaining why we need to use background location for our users, and I also added a disclaimer in the application description as stated on other questions here on stack overflow informing the user that the usage of GPS in background can increase battery depletion speed. But the app is still being rejected for the same reason that is Apple performance guideline 2.5.4.
2.5.4 Multitasking apps may only use background services for their intended purposes: VoIP, audio playback, location, task completion, local notifications, etc. If your app uses location background mode, include a reminder that doing so may dramatically decrease battery life.
I noticed that apps that request user location in background have an additional Information field called Location.
App with Location field
But my app does not contain that field
App without Location field
So I presume, that instead of adding that disclaimer on the app description on iTunes Connect form, I should place it somewhere else, but looking at my iTunes Connect account on App Information session there is no text field where I can input that information. And consulting Apple Docs I also wasn't able to find where I should input that.
So my question is where I can set that information that is shown on iTunes, via iTunes Connect?
So my question is where I can set that information that is shown on iTunes, via iTunes Connect?
Nowhere. Apple adds that, not you.
I already answered the reviewer many times explaining why we need to use background location for our users
Well, that is what you need to attend to. You are evidently trying to use background location in some skanky way, and you are busted. So use background location legitimately or not at all.

How distribute specific iOS app version for specific region/territory

I have published app not for all the world.
I want to add one more region but for this region I want to push specific version with additional changes and other internal settings.
I know how to manage full access of the app. But what about concrete version? Should I register one more app and distribute it only for this territory?
Example:
I have a version 0.0.15.4 that was published at the store for example for Germany region.
Now I have prepared version 0.0.16.12 and I want to share it to China, only for China region.
In result I want to have two versions one for Germany (0.0.15.4) and the next one for China (0.0.16.12). They both should be available from that stores. Why? Because they use different server urls (China government restrictions).
Quick answer: No
Answer from Apple Developer Program Support:
At this time, your app may only have one build available on the App Store at any given time. If you were to update the region of availability to only be accessible on the App Store in China for version 0.0.15, version 0.0.16 would not be able to exist simultaneously on the App Store in Germany.

App rejected while updating location in background modes

From Apple
2. 5 Performance: Software Requirements
Guideline 2.5.4 - Performance - Software Requirements
We noticed that your app declares support for location in the UIBackgroundModes key in your Info.plist file but does not have any features that require persistent location. Specifically, your app uses location background mode for the sole purpose of tracking employees, which is not appropriate on the App Store.
Next Steps
To resolve this issue, please revise your app to include additional features for your users that require the persistent use of real-time location updates while the app is in the background.
If tracking your employees' locations is your only intended use of background location, it would be more appropriate to distribute and sell your app as a custom B2B app, directly to CBS Clean, through the Volume Purchase Program. Additional information about the Volume Purchase Program and the Custom B2B Store is also available in iTunes Connect Developer Help.
Request a phone call from App Review
At your request, we can arrange for an Apple Representative to call you within the next three business days to discuss your App Review issue.
To request a call and ensure we have accurate contact information, reply directly to this message with a contact name and direct phone number to reach you.
i have developed a app for cleaners..cleaners location should be fetch in background for their payroll calculations and safety measurements..and also cleaners can view their worked places in mapview...but my app gets rejected..now what should i do..how to deal with this issue
Have a look here.
You can include the functionality and methods for the location services if your app needs Location services or remove the Location Updates from the UIBackgroundMode key in info.plist, So that your app will be approved by App Store.
I think you are using
locationManager.requestAlwaysAuthorization()
use this locationManager.requestWhenInUseAuthorization() instead.

iOS: What restrictions are there on data gathering from within an app?

I have an app that I did as a proof of concept and put on the app store just to gain experience going through the process but it turns out, it gets quite a few downloads, probably 30 a week. No Angry Birds but the app is very specific on the data it provides. It's a free app and what I would like to do now is gather some data on the users - how often they use it, where they are, what information they are searching and saving. I have no intention of touching personal data but I'd like to be able to aggregate what all the users are doing and see if there's any value in that.
Is this permitted in an iOS app? I see reports where apps are gathering more data than that (like Path pulling all your contacts) and I would think what I am looking to do is pretty standard.
Any advice is appreciated.
Check the App Store approval guidelines. That is the best resource you have.
https://developer.apple.com/appstore/resources/approval/guidelines.html
A few excerpts that may be relevant to you:
Location
4.1 Apps that do not notify and obtain user consent before collecting, transmitting, or using location data will be rejected
4.2 Apps that use location-based APIs for automatic or autonomous control of vehicles, aircraft, or other devices will be rejected
4.3 Apps that use location-based APIs for dispatch, fleet management, or emergency services will be rejected
4.4 Location data can only be used when directly relevant to the features and services provided by the App to the user or to support
approved advertising uses
Privacy
17.1 Apps cannot transmit data about a user without obtaining the user's prior permission and providing the user with access to
information about how and where the data will be used
17.2 Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected
17.3 Apps that target minors for data collection will be rejected
Independent of what the guideline says, you should be mindful of your users privacy. As long as you don't pin the information you collect to individual users, I guess you might be fine.
Regarding location data, the guideline states you can't collect for analytical purposes if it is not relevant to the app's usage. However, it is referring to the gps data. You can obtain location for analytical purposes through network access information.

Resources