I've successfully implemented In App Purchasing and 99,9% of the users successfully buy the IAP product. However, one user with a jailbroken phone gets this error:
Is there anything I can suggest to this user? I don't think the problem exists for all jailbroken iPhones because the number of complaints should be statistically higher, then.
There's another similar question though it wasn't clear about the jailbreaking status of affected users. I'm searching for an actual solution for those jailbroken device users (other than recommending not to jailbreak - since that'd mean lost business).
This happens every now and then with jailbroken devices trying to use the store. Apple knows the device is no longer legitimate so the request to the store is in "test mode".
You could tell him a few things:
if you're sure you're app can be purchased with other jailbreaks isolate which he's using and tell him to use the other ones
add his user account as a "test user" on your list. You won't get paid but you'll have a happy customer
tell him not to jailbreak his phone...
Possibly send him a build of the app with his device and consider him a QA tester. He'd have to send you his device id and you could make him a speciL build every 3-4 months.
I came across a how-to YouTube video that proposes a solution for the problem by temporarily replacing /var/stash/libexec./installd by /var/stash/libexec./installd.new. However, this approach bricked the phone of one user so the OS had to be restored and jailbroken again (at least the IAP worked after the restore)! I absolutely don't recommend this solution but it might be a last resort for some hard core jailbreakers - after all, jailbreakers should know what they're doing, right?
Related
I have currently an app that through in-app purchases a user can unlock content on the app. What I have noticed is that some users "abuse" of this by logging with their Apple ID in multiple devices and I'm currently looking into possibilities on how to limit the use of the content to the device where the purchase was done. I understand that Apple doesn't allow that, so that means the payment system should go away from the app.
Therefore, introducing logging will help me to be able to identify the person that is using the app against a backend but still, I need to be able to limit on a device. As far as I know, the UUIDString of the CurrentDevice is not really a way anymore. What other options are?
I saw this library, which seems to promise unique identification:
https://github.com/fabiocaccamo/FCUUID
Another solution probably would be to create a licensing system, so one license can only be used at the time.
Thanks!
I will describe our experience with using same account on different devices (VOD):
User is able to use application on how many devices he want, but he able to watch content only on 5 uniq devices.
Each time user try to watch content, app check if device registered with some UUID, if not then try to register. UUID is uniq per installation, it mean that if user will watch content, then delete app, download again and watch, then he basically lose 1 device.
In same time user able to unregister device via web, but he had only like 25 unregistrations (I don't know what happened if user use them all).
We don't use in-app purchases and accounts are cross-platform (android, iOS, web, tvs, etc), so not sure if it helps you.
AFAIK, Apple does not have limit on how many devices you can user Apple Id. You can have 6 family members so number of devices could be lot more.
I feel it is bias how Apple's guideline talks about limiting music, movies, shows and books to 10 devices but does not say anything about Apps!
Apple - Family Sharing
If your family has purchase sharing turned on, music, movies, TV shows, and books can be downloaded on up to 10 devices per account, five of which can be computers.
I have not seen any application limiting IAP on devices. You could run into risk of Apple rejecting your app, potentially on every update you submit. I would reach out to App Store or if your company have Sales rep contact and get their suggestions/buy-in before spending lot of time and money.
Also, create issue/radar and give specifics about issue. More people request this feature, has better chances of it getting added.
One way you can achieve this is to keep track of receipt you get for IAP and check how many users/devices using that receipt. You would need to build entire flow to educate user about device limitations. Like updating App Store page, warning before purchasing, option to add/remove device and more...
If you are planning to implement device limitation, please beware of the rejection risk.
I am working on a mobile iOS app that is customized to each client, with their own app icon, startup screen, and a few other changes. Each is then submitted to the app store as an individual app.
This is working just fine so far, but what will happen if there's 1000 clients instead of around a dozen? Does Apple have any rules on quantity, submission rate or uniqueness? Any reviewer would clearly see that the apps are basically the same outside of the branding.
Don't do it. You will get kicked out of the appstore.
Read 2.20 of Apple iOS Guidelines which says that developers that spam appstore with similar apps will be kicked out completely!
Notably developers like AppGratis got kicked for this and many others reasons.
Sorry can't disclose, if you have a developers account though you can check the requirements
from https://developer.apple.com/appstore/resources/approval/guidelines.html
I know this is an old thread but somehow it popped up and the answer selected is not entirely correct. The requester needs the custom B2B program here:
https://developer.apple.com/programs/volume/b2b/
That is specifically made for the purpose she/he asked about: to distribute customized apps to a business without cluttering the app store. There is no cost but your customers will need to join the Apple Volume Purchase Program for Business though that doesn't cost them anything.
The reason I say the accepted answer is partially correct is because obviously one should not spam up the app store with similar apps intended for one business, which is entirely correct. But that does not answer the underlying why they wanted to do this and how they could achieve the result they need which is to use the B2B program.
I have a social iOS app that has thousands of users (and most of them are children ages 10-13). Occasionally someone shows up that wants to cause trouble, and I wind up banning them.
Previously I used a hashed MAC address to identify the user's device, but now in iOS 7 that MAC address will no longer be accessible. Apple's solution is to use the advertising identifier.
The problem is that the advertising ID can be reset. If a user causes problems, gets banned and then resets their ID, I wont be able to block them. They'll essentially look like a new user.
Any solution to this? Perhaps I need to rethink banning users altogether? It pains me to think I wont be able to keep out the abusive users.
I think banning like this is not a good idea.
Because if the banned user sells his iPhone to someone, the new owner can't use your app.
So are you using any user Id for logging in ? If yes. Block them according to the UserId. Blocking them using the device Id is not a good solution (It's my suggestion)
From iOS 7 onwards, you can't get any ID that identifies the phone itself - the advantage is that if someone who is suspended sells their phone, the buyer won't be suspended.
Check this answer: IdentifierForVendor
identifierForVendor gives you a string that is unique to that installation of your app on that phone. So for privacy reasons, you still cannot identify the phone, but the installation of the app. That should be enough. You could also store the number in the keychain, so uninstalling and reinstalling the app wouldn't help.
I have developed an Application for iPhone.
In some countries, there are some places you can go, give your iDevice and they will install any App/Apps on it much, much cheaper(for 1$ for any App).
How do they do that? - They simply legally buy an Application once and then synchronize "customer's" iDevice with there Account. I think it's illegal, to resell...
So my questions are:
Which steps as a developer can I make to protect my Application to be illegally shared?
Does Apple do anything against that? Because apple purchases are account related.
EDIT: I forgot to mention, that application is for free, the products must be bought within the Application (In-App Purchase) which will be downloaded after purchase form other server.
One solution could be, if it was possible to get UDID of device and "account-id" I could limit download, let's say, for 5 devices.. I read that, starting with iOS5 it isn't possible to get UDID, or is it? And is such limitation against Apple Rules?
I could limit download, let's say, for 5 devices [...] is such limitation against Apple Rules?
Refer to Fernando's answer for your UDID question, but this is absolutely against the developer agreement. Your in-app-purchase needs to be restorable on any devices that user owns. It is somewhat unlikely, of course, that a user owns more than five iDevices, so if you want to take your chances you can. That said, I know of instances where Apple have come down on people who tried to limit apps 'per device'.
if it was possible to get UDID of device and "account-id" I could limit download, let's say, for 5 devices
If by 'account-id' you mean the iTunes username that downloaded/bought your app, then no, it's not possible. You don't have access to any information about the purchaser, I'm afraid.
The companies I worked for so far refrained from doing such restrictive DRM because it's more possible that you will harm a customer by mistake than you get anything. Don't waste your time implementing this.
You don't simply get people to buy your stuff by annoying them. People that get your app this way in general can't be convinced to buy
But if you must do it, here's a workaround to have a unique device identifier after iOS5:
https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5
I hope somebody can help here, its an ongoing issue with no obvious solution.
The background
I created my own personal apple developer account back in 2010 to tinker about with iOS development. The company I worked for at that time asked me to write an app as a test to see if we could a) write an app and b) sell it. It so happens both cases were true and the app has flourished into a successful venture.
The issue:
I am leaving this company and we are trying to figure out how I can give them this app, they did after all still pay a salary while I was making the app so I consider it their app really only its tied to me and my personal developer license. I currently forward any funds it makes to them each month.
We contacted Apple and they suggested the company i work for set up a company developer account and then ask for an app transfer. This sounded great and we started the process but then it occurred to me that re-signing the app under a different developer license would effectively kill the existing app on the store. All our ratings would be wiped (and there are quite a few) which is unacceptable. The ratings of an App are extremely important to its success on the store. Apple confirmed that the ratings and reviews do not get transferred across. We stopped.
So, here I am at this block again.
The company I work for even suggested buying my personal account off me so they can run it themselves but I am worried about this, it seems fraudulent as I am the one responsible for contracts on that account and any issue would come back to me. THey wouldn't be able to change the owner "name" on the account either from what I have read.
Any suggestions how we can resolve this?
Thanks
Geoff
it occurred to me that re-signing the app under a different developer license would effectively kill the existing app on the store.
This is false. As long as you transfer the app like Apple suggests (you need to contact them for this), the company just needs to submit a new version from their account and it will work. You don't lose your ratings, nothing. It all gets transferred to the new account including the iTunes Connect side of things. They can sign it with a different certificate and submit. As long as the app ID is the same as before (which it will be), there is no problem.
It sounds like you have old or inaccurate information, because I know somebody who did a transfer like this, and they kept all the ratings etc.
I have faced this same issue, after contacting apple several times, we concluded that there was not other choice, so we removed the app and re uploaded it a gain on the other account
Not only the rating has been wiped, but also users with old app will not be able to update it when you push a new version to the app store
Its a very tough decision, but we had no other choice