I heard that developers must specify clearly the list of iBeacon UUID their app is working with, and that each change in this list would require an update. The reason would be to prevent companies to apply "counter-marketing" strategies, using their opponents' iBeacons to broadcast their own coupons.

I'm developing a generic app that may let the user input his iBeacon's UUID or fetch them from a server.

Would this application be really rejected by the appstore's validation process ?

  • If you could link to a discussion on why / how a submission would be rejected (or clarify what point in the agreement would be violated - perhaps linking to the now non/NDA WWDC videos), this would be a better question than it is already.
    – bmike
    Jun 11, 2014 at 14:57
  • Thanks for you comment. The site i heard this information from was french, and they didn't quote their sources. Would it be relevant to link a source written in french ?
    – Khopa
    Jun 11, 2014 at 14:59
  • Yes - anything you can do to refine the issue helps. There could be an editor that sees the links and translates the gist of the discussion here to english. Better would be if you went over the T&C for iTunes Connect and app submission and pointed to what you thought allowed or restricted this. Also, a link to the iBeacon authoritative source (even if it's developer.apple.com requiring a log in) would better inform the issue.
    – bmike
    Jun 11, 2014 at 15:02
  • I found some english sources about the issue : beekn.net/2014/05/… blog.awwapps.com/blog/2014/05/20/… Seems more clear to me now. So, the answer is yes, it is forbidden to manually input UUID in an iBeacon app indeed. Sorry for my poor research !
    – Khopa
    Jun 11, 2014 at 15:07
  • I'm still looking for the official Apple documentation about it though.
    – Khopa
    Jun 11, 2014 at 15:08

1 Answer 1


The answer is yes, Apple is rejecting the apps that let the user input iBeacon UUID. If you fetch an uuid from a server, that would probably result in the same problem.

Just a quote from an article about this issue :

We’ve been receiving reports that Apple has recently taken its “lock down” of UUID scanning a step further. Before, you needed to specify the UUID numbers you were scanning for in your app, but you could also manually input those numbers.

But now, Apple is rejecting apps that have this functionality. Awwapps is one of the documented cases of this rejection:

"With the upcoming updates of our iBeacon apps Launch Here and Travel Radar we will remove the option to manually add and edit iBeacon credentials (UUIDs, Major ID, Minor ID). This is not our choice. We do this to keep the apps in the App Store. We’ll do our best to come up with other options to add your iBeacons – better options…We will improve on this and extend support to more iBeacon vendors…Please note that a general scanning of all iBeacons around is not possible on iOS. We rely on your input to cover all commonly used iBeacons."

Source : http://beekn.net/2014/05/apple-closed-system-apple-slowly-locking-ibeacon/

Why :

Apple decided this for security reason. That allows developers to prevent their ibeacons of being used by others companies.

Why it's not a big deal :

Most beacons constructors set up their beacons with the same UUID. So the most commons beacons may still be found, unless the UUID was changed for security reasons. For example, by default, the UUID for all the iBeacons built by Estimote is "B9407F30-F5F8-466E-AFF9-25556B57FE6D". You then rely on the "major" and "minor" id sent by the beacon to develop your application.

iBeacons aren't invisible :

It's possible on Android devices to develop an application able to see all the iBeacons in range, and to get it published on the Play Store without any trouble. On iOS, it's still technically possible that an application may let the user input the UUID value, it just won't be approved by the App Store.

And of course, the iBeacons still emits Bluetooth data that still physically exists in the air.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .