Specific Country restriction Appstore - iphone

I have made application only visible to Germany, Now Apple informed to include Monitoring Shape-Based Regions for if the user move away after installing from Germany? How to monitor the region to restrict the application if exceed Germany area?
I have tried with following links
1) Core Location region monitoring
2) Apple: Location Awareness Programming Guide
My doubt is how to restrict application only available to Germany. Should I try with latitude, longitude. And how to monitor the regions/territory exception.
I uploaded it to the app store, but they reject with the following reason :
22.1: Apps must comply with all legal requirements in any location where they are made available to users. It is the developer's
obligation to understand and conform to all local laws.Please see
Monitoring Shape-Based
Regions
for information on how to apply Geo restriction.
My doubt is how to restrict Geo location.

By default, the app will be available in all countries the App Store currently supports, unless you specifically select individual countries/stores. You can choose individual countries.
log into iTunesConnect and click Manage Your Apps. Select your app and click the Rights and Pricing button. You can select the stores you want from this page. For More you can
review the page 48
Update
As Updated
Easiest way to solve this topic would probably is to decide which countries you want to make your app available in ? and as i have search something like review countries local laws to see if any thing is illegal related to the app. And this relate to your Questions
What if I make my app available on other countries than usa?

If your application relies on location services to function properly,
you should include the UIRequiredDeviceCapabilities key in the app’s Info.plist file.
You can use this key to specify the location services that must be present in order to execute your application. The App Store uses the information in this key from preventing users from downloading apps to devices that do not contain the listed features.
http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/LocationAwarenessPG/CoreLocation/CoreLocation.html
this link contains all the information you need.

Related

Find iPhone devices/device tokens in specific radius :-

I want to find iPhone devices/device tokens within a specific radius from particular location.
For example : Within a 25 K.M. of radius from Sydney,i want to get iPhone devices tokens.
I am working on ASP.NET MVC2 for this.
Let me know,if is there any API for that?
Thanks,
You are only able to get details for devices that you 'know' about. Your app will need to log unique IDs for each device, and your app will need to log known locations for devices. It's then up to you to look up, from your central database, the details of the devices within a certain distance. iPhones can update significant location changes when running in the background but it's up to you to track devices and accept the limitations that that data may not always be correct. eg. If a user falls outside connectivity then you will still have an old location logged for that user.
I'm not aware of a single API that offers this services, if you're coding it then in your app you will need to register devices identifiers and location information to a central server. You will also need to create the lookup to query your data to find devices within a location. I am guessing that you might want to send push notifications, in which case your app will also need to register for notification services too.
There is no way for you to discover devices that don't have your app running and you also do not know who the owner is.

iOS api for real time traffic data (like geoloqi and Waze)

I have been visiting some services api website but can't find what I am looking for. My question is more aimed at what resources to use rather than how exactly it should be done.
My iphone app requirement is to be able to track users that are nearby, are commuting and locate them on map. Additional requirement maybe texting them, call them, have video session with them etc. On a high level, this will convert to something like
get user details based on longitude and latitude
get to know if they are registered users of the service subscribed
Sending message to user/users
Call user using iphone phone api or dedicated app session
Video call
Waze is one of them. While it is open source, there is quite less documentation on how one can use it as backend for real time traffic data.
Then there is this Geoloqi which is paid, but has iOS SDK as well as rich api. However I cannot find sections that are useful to me when I look up to my requirements listed above. What I believe is that there must be many apps already relying on such a useful service. If any of them are open source / tutorials, it would be most useful resource for me for feasibility of geoloqi. Geoloqi also charges users for using their api, so it is also important for me to know what features come at what price .
For the level of data/information your interested in, and the functionality, you should just make your own app, I dont think you need those APIs.
You can find and send the coordinates of the people who are using your app to your server. Then you need to determine the distance between them, to see if they are in the zone of talking, or whatever other functionality you have listed above.
To determine the distance between two people, This answer should be helpful: Calculate distance between 2 GPS coordinates

App with different functionality based on the user's country

I need to develop an application that will behave differently depending on the user's country. Let's say, if the user is in France, some functionality would be available. But, if the user were from India, he would be able to acces a different set of functionality.
If it were only language based restrictions, I could switch functionality using NSLocale class methods. But my functionality is really dependent on the user's country because of licensing and legal reasons.
What are the best practices for dealing with this situation?
For each market where you have specific requirements due to market-specific licensing or legal issues, you can create a separate app in iTunes Connect and make it available for download only in the relevant market. And if you need to, this also allows you to provide a market-specific EULA. It's a big maintenance burden, but it would ensure that only users in a given market can access the app.
Note that in XCode you can fairly easily build, deploy and publish multiple versions of your project built from different configurations (XCode calls this "Targets"), so you could still achieve this in a single codebase by simply adding some preprocessor definitions in the relevant target definitions and putting #ifdef in your code where you want differentiated logic.
A 3rd party app has no access whatsoever to any information about the user of the device or access to the iTunes account. There is no way to know the user's true country. At any given time, the device may not even be associated with any one person. An iPod touch, for example, may have no user logged into any iTunes account. The same device can ultimately be logged into one of several different accounts.
All you have access to is the user's current GPS location (if the user allows your app to access that information) or their current locale.
Basically, there is no way to do what you need. Of course you could prompt the user but obviously there is no way to verify this information.

Ban of the location based ads for iPhone

http://developer.apple.com/iphone/news/archives/2010/february/#corelocation
Can anyone tell me what is the exact description of an ad and just a hint for a user?
We are developing a library that shows small banners depending on user's location. E.g. we are passing a cafe - we have a banner about this cafe, we are passing a church - we have a banner about this church. The library is to be re-used in other apps.
So from one point of view we are advertising a cafe, but from another point of view we are giving the user an advice about places to eat around him. So what is the border between an ad and advice to a user?
I think the problem is that such an app tracks the location of the user and location specific ads will constantly remind the user that their physical location is being tracked.
This is an obvious privacy and security issue but I also think Apple wants to prevent users from experiencing that creepy feeling that comes from knowing somebody is tracking you against your will.
In order to feed the iPhone location based adds, you have to upload the location of the iPhone to a server, process the appropriate adds for the location and push them back. That means that an external 3rd party, that neither Apple nor the user can control, is constantly tracking the location of the phone while the app is active. Since an app can capture info identifying individual phones, that turns the app into spy program.
Even if you actually did all the processing inside the app on a single phone e.g. looking up an internal local database, the user would still most likely assume they were being tracked remotely.
There is no way Apple will risk the damage to the iPhone's brand that would come from news stories screaming, "iPhone App Secretly Tracks User's Locations Anywhere in the World!"
The library you have in mind is clearly verboten. You could might get way with it if had a mechanism for constantly asking the user if they wanted to load location specific ads.
(BEGIN RANT: As an aside, I would say this sounds like something the explicative-deleteds in marketing came up with. They think "Hey, we can push location targeted ads at users and force them see those ads when they use any of the apps with the library! Think how great that will be for advertisers!"
Marketing driven design is almost always a disaster. If they started the design with the idea, "Hey, I think I as a user would like to have the option of seeing ads relevant to my location with a mechanism I control and which protects my privacy and security," then they would come up with a much better library.
In the long run, you make money by giving end users more power and control over their work and lives. You don't make it by strapping them down and force feeding them what you want.
If you personally wouldn't want the functionality and no users have asked you for the functionality, then its probably a bad idea. END RANT)
Edit01:
Let me address this:
So from one point of view we are
advertising a cafe, but from another
point of view we are giving the user
an advice about places to eat around
him. So what is the border between an
ad and advice to a user?
I used to work at Apple in several capacities so I understand a bit how they think.
An ad is something pushed onto the user with any prior action of the user's part. The user doesn't request the ads, doesn't select the ads may not even want the ad but they just appear anyway.
Advice is something the user ask for explicitly. An app with a button that says "Show adds for businesses in your immediate vicinity" would fall under the heading of advice. Even an app whose stated function was to show adds for businesses in the vicinity would be fine. In both cases, the user request specific information. It is not pushed onto them. More importantly, the user can control if they send their location or not.
I got caught in the nutcracker back when Apple thought it was a good idea to have dialogs popping up telling people how to upgrade to Quicktime pro. It caused no ends of problems for end users especially those in institutions because it took control out of the hands of end users and administrators. I got to stand between irate customers and the genius that thought of the idea, which turned out to the actual genius Steve Jobs. Eventually, he saw the light and the desktop ad experiment was terminated.
Jobs and Apple learned their lesson. Don't force ads on end users. Especially don't tie ads to the functioning of the software (in this case, the location manager.)
The big thing in Apple's announcement is the part that says: "If your app uses location-based information primarily to enable mobile advertisers to deliver targeted ads based on a user's location, your app will be returned to you by the App Store Review Team for modification before it can be posted to the App Store."
Is the major function of your app to advertise to users -- regardless of the fact that they may ask for the ads or not? If the major function is to advertise to users based on their location or the greater portion of Location Services usage is for the purpose of advertising to the user then Apple will reject the app. Period.

Can we publish two versions of an iphone application?

HI,
I am developing an application for an esteemed client in Australia. They have certain copyright issues when it comes to uses outside Australia accessing the content via the app.
Is it possible to have a local and an international version of the app, both available via iTunes Store? The international version will only have permissible content. If not, please advice the best option to deal with this issue.
Thanking you in anticipation
Cheers,
Amit
Yes, you can create two versions of the application with different SKUs. The best way to do this would by by using a wildcard certificate and using a different project identifier in the application's plist file.
Using the administrative panel on iTunes Connect you can then restrict the sale of the SKUs to different territories.
These options become available when you have paid the $99 for a development certificate, and and when you upload your application to iTunes.
As others have noted, it's possible to build two versions and to use the iTunes store to restrict distribution based on the nation where the buyer is located.
However there's another issue to consider. You say that the problem is "accessing the content via the app" outside of Australia. But you're on a platform which is inherently mobile, and may not be located in the same country it was when the user got your app. What happens if someone is in Australia, gets the app legitimately, and then travels to some other country? They're no longer in Australia but they have a copy of the app that assumes they are. Would your client's copyright restrictions still permit them to access content that's supposed to be Australia-only?
If not, your problem is rather different than using app-store restrictions. But it might also mean that you get to have a better solution to the problem that doesn't require multiple versions of the app.
Think about it: the iPhone knows where it is. A 3g phone can get GPS-accurate location info, and the older phones get reasonable approximations anytime they have a phone network connection. That gives you lat/long coordinates.
What then? Since your home area is pretty well defined, it might be simple-- draw a rectangle around Australia on a map, and define "in Australia" as being in that rectangle (being a whole continent comes in handy here). If you want something more precise, feed that lat/long into a reverse-geocoding API (there are many-- Flickr has one, for example) to find out what country you're in.
And voila, you can make the app behave one way in Australia and another way outside of it, and you only need one version of the app to do it.
You can restrict which apps are sold in which country/geographical region. Your Australian app you can restrict to Australia and sell another app worldwide.