iOS: iBeacons same UDID different major and minor - ios

Scenario: I have 10 venues. Each venue has a 40 - 60 iBeacons installed. As the User enters a museum, the apps shows relevant info that's associated with each iBeacon.
Objective: Don't be tied down to one manufacture or use their SDKs to scan/monitor iBeacons.
Proposed Solution: Have the same UDID# for all the iBeacons. Assign the same Major value per museum. Assign unique Minor value per iBeacon to distinguish between the iBeacons.
Question:
Since we are scanning for the same UDIDs and are not configuring the device from our app, we shouldn't need any manufacture specific SDKs. We should be able to accomplish this by Using Apple's CoreLocation to monitor and range an iBeacon Device?

Well it depends on the manufacturer. Most of the time when you buy the beacons they are running the manufacturer's custom firmware and require you to change the configuration to "iBeacon Configuration" (Usually giving you the options to set the UUID, major, and minor fields) through the manufacturer's custom dashboard. So your correct in saying that all you need is CoreLocation framework to monitor/range beacons but you need to make sure the actual hardware is broadcasting as an "iBeacon Configuration".

Related

My app to measure pulse oximetry is rejected by Apple

I made the free app to measure the oxygen level in blood using a phone's camera.
Apple rejected app said this:
Guideline 1.4.1 - Safety - Physical Harm
We noticed that your app claims to take health measurements using only
iOS device sensors, which is not a functionality these device sensors
support.
Specifically, your app claims to measure a user’s bloody oxygen
saturation.
Next Steps
To resolve this issue, please remove any unverified health measuring
functionality from your app that uses the device sensors.
Alternatively, you may submit documentation in the App Review
Information section in App Store Connect that clearly discloses data
and methodology to support accuracy claims relating to these health
measurements. If the level of accuracy or methodology cannot be
validated, we will reject your app.
What documentation I have to submit?
Sounds like you need to conduct some tests using a real pulse oximeter, and your app, to show that your app gives similar readings to the pulse oximeter.
The tests would need to be thorough enough to convince a sane person that your app is decently accurate compared with a real pulse oximeter.
Apple needs to know that your app is accurate before it allows people to use it.
Basically you need to do some science 🧬⚗️. For example, multiple tests on a number of different people of varying health / age / skin tone. Document your experiments. Attach the findings. Apple wants to see that.

AppStore GEO restrict app to specific USA states

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?

Apple iBeacon: are there any usage limitations imposed by Apple?

Are there any limitations imposed by Apple when using beacons APIs?
For example can I design an App that uses iBeacons as part of a game and not for providing in-store marketing?
Is the app likely to be rejected?
No there isn't. As an example we've delivered an app for a wearable that broadcasts itself as a beacon in order to initiate syncing on the phone (or the start of a detected activity or state change).
If you're sticking to their APIs then indeed there's plenty of use cases that have nothing to do with marketing or even location.
It's a common misconception that Apple iBeacon technology is all about marketing. Not only does Apple not restrict use of the technology, it is happy to approve apps that make novel uses. I have build all kinds of beacon apps and had them approved in the store that do things with beacons like:
Indoor navigation at the Consumer Electronics Show
Scavenger hunts
Getting info about plants at a botanical garden
Opening gates at parking garages
Identifying people who are nearby to kick off a chat session
If you are worried about an app being rejected due to using beacons, be more careful to see that it isn't unnecessarily using location background mode. This is the main reason that I have seen beacon-based apps get rejected in the past.

How to search for iBeacons UUID, and scan for all iBeacons around in iOS, Swift

I am working on an iOS app that detects iBeacon devices around me.
From what I understand, we need to know the specific UUID to scan for them.
for ex here: Search for all iBeacons and not just with specific UUID
With this in mind, I use corelocation and I can detect my beacons, ok!
Problem is, when I try several apps in the AppStore, some of the app can just scan all of my beacons with different UUID (I have more than 90 beacons with 8 different UUIDs)!! how is it possible??
App 1: https://itunes.apple.com/us/app/ebeacon/id730279939?mt=8
App 2:https://itunes.apple.com/nl/app/dartle-ibeacon-locator/id904211297?l=en&mt=8
So my first thought is that they use some kind of private framework from Apple, but if you do that, your app will not allow to be published!, hmmmm...
So my question is, how can they do that?
- Do they have like a list of all UUID from all the iBeacon manufacturers?
- Or they know a way to scan for all surrounding iBeacons UUID?
Can someone pls help me answer the question?
Apple's intention is that you can't find all beacons around you, mostly for privacy reasons, but also to save power. Your app should only work with specific beacons, so you need to set up all your beacons so your app recognises them. You shouldn't be able to detect the beacons that my app uses. So the presence of a beacon will only be detected if the user explicitly downloads and runs an app that is supposed to detect that beacon.
BTW. If you buy beacons, they should come with an application (usually a Mac or Windows application) that lets you change their ID. So if Joe's Carwash application uses beacons, Joe buys 100 beacons, and then sets them all up to he ID that Joe's Carwash app recognises. Otherwise Joe would be in real trouble if a beacon breaks, needs replacing, and then Joe needs to update his app. Instead if a beacon breaks that was set to ID xxxxx, Joe buys a new beacons, changes its ID to xxxxx, and puts it where the previous beacon was.

Dynamic iBeacons and Manual Input of UUIDs

I'm working on an app that retrieves iBeacon UUIDs from a backend server, that means there are no hard-coded UUIDs in the app and these IDs are constantly changing. UUIDs can be updated on the backend and the app will receive a new set of UUIDs to monitor for.
Based on this post here, Apple is rejecting apps that support manual input of UUIDs and I'm not sure if my app is going to make it to the App store.
I would like to hear your feedback if you've gone through this path or have worked on a similar concept and made it through the review process.
I have also had an app rejected for allowing manual input of ProximityUUIDs. My understanding of Apple's position is that this applies only to transmitting as a beacon, and that it is allowed to have manual user input of ProximityUUIDs for detection purposes. The reason they don't want you to transmit with a manually entered ProximityUUIDs is because it allows creation of an easy hacker tool for "spoofing" other folks' beacons.
That said, your use case is different still, because you are getting the ProximityUUIDs from a server, not directly from user input. I have several apps in the AppStore that do exactly this, and it is a common practice, so I don't anticipate it will be a problem for you.
Interesting discussion on UUIDs. Given the ibeacon protocol requires you to know the UUIDs, having to add them to your app in advance is a major limitation. How does one request an official UUID from Apple David, your company "Radius" makes beacons, is the UUID it ships them configured with an "officially" agreed one you setup with Apple?

Resources