Pre-requisites for submitting iBeacon iOS app on apple store - ios

I have developed an iOS app which has implementation of iBEacon Technology.
The app detects one specific UUID type of beacons and proceeds further.
As we know, every app get tested by apple testers, how this app would be tested having ibeacon hardware interaction by apple?
Also what are the pre-requisites or steps to be followed to submit iBeacon app to apple store ?
Please help.
Thanks.

Like always with the AppStore, review requirements for beacon-based Applications vary depending on the luck of the draw of what reviewer you get.
A few tips:
Always submit a video of your app interacting with beacons.
Include beacon identifiers in the review notes as #Paulw11 suggests, and describe what action each beacon will cause when detected by your app. Don't expect that reviewers will actually test this, so make the video comprehensive.
Unless you know what you are doing, generally do not specify location background modes in your .plist, otherwise you have higher risk of rejection.

Related

Change iBeacon UUID (or Major/Minor) with Custom iOS App?

Has anyone had success with configuring non-name brand iBeacons (eg. https://www.ebay.com/itm/NRF51822-2V-3-3V-bluetooth-4-0-wireless-module-for-ibeacon-base-stat-JF/254232206096?hash=item3b316b9b10:g:TT4AAOSwaMtcnXbr) with an iOS app?
I have an app running that can scan for these beacons just fine, but my target application involves modification of the beacon UUID which (as far as I understand) is fairly contingent on the SDK provided by the maker of the beacon. Things like Estimote are pretty clear about their SDK capabilities but the beacons are a bit too expensive and bulky.
Open to literally any input or recommendations, I'm hitting a wall here.
Thanks.
The provider of the beacons should have a configuration app available. Avoid providers without such an app.
Even though iBeacon is exactly specified, configuring such beacons is not, so apps are not interchangeable.
I've used Wellcore beacons successfully, that are quite competitive on price when ordered directly from China. I made a free configuration app for them, based on their SDK, as there was no such app in English: https://play.google.com/store/apps/details?id=com.abiro.cliqtagsbeaconwriter
I got bad reviews as Wellcore changed chipset without telling me, so the app stopped working, but that's fixed.

Detect iBeacons without knowing UUID. Some apps are doing so

I looked into the answer for this question and in most of the answers, I found that it is not possible to detect the iBeacon without knowing the UUID of the device.
But some of the apps on App Store is doing the same. Here are the links for those apps, which are detecting unknown iBeacons.
https://itunes.apple.com/in/app/locate-beacon/id738709014?mt=8
https://itunes.apple.com/us/app/my-beacon-best-beacon-manager/id850255614?mt=8
Let me know if it is possible to detect the unknown iBeacon.
Thanks in advance.
I am the author of the Beacon Locate app you referenced in the question. I can assure you that it must know the ProximityUUIDs up front in order to detect beacons. The app is pre-configured with a dozen or so UUIDs (Estimote's default UUID is one of these) so you can detect those beacons without first manually entering the UUID. We do this to make it as easy as possible on the user. (Obviously that worked as you did not even notice we were doing it. Thanks for the compliment!)
You can see these pre-configured UUIDs by going to tge app Settings, which also allows you to enter more.
In the past there have been private APIs that allow you to detect any beacon on iOS. But there are three problems with these:
Apple forbids publishing apps in the AppStore that use private APIs
These private APIs are subject to change with any OS update, rendering them unworkable
The private APIs I know about to do this were all removed as of iOS 9

watch OS 2 beacon monitoring and ranging

has anybody found any information about interacting (ranging and monitoring) with Beacons in native Watch OS 2 applications?
I would like to give the user the possibility to range one in an home environment without having the phone in their pocket.
I can't find any docs anywhere and I am wondering if it's actually feasible - and obviously if there is any kind of example around.
Thanks
Core Location on watchOS is stripped of all the iBeacon functionality. There are no startRangingBeaconsInRegion: and startMonitoringForRegion: methods, as can be seen in the CLLocationManager reference documentation:
https://developer.apple.com/library/watchos/documentation/CoreLocation/Reference/CLLocationManager_Class/
The only option for now is to do the ranging/monitoring on the iPhone, and pass the results to the Watch app via the Watch Connectivity Framework.
UPDATE for watchOS 4: still no iBeacon in Core Location, but there's now Core Bluetooth available for the watchOS apps, which means your app can detect non-iBeacon packets, such as Eddystone, or Estimote's Nearable/Telemetry.
Only if your app is in the foreground or has execution time though. The latter meaning that, for example, if your app is already running in the background because you're using the new "location updates" background mode for turn-by-turn navigation, or you're tracking workouts in the background, then you can at the same time scan for beacons. In and on itself, detecting Bluetooth beacons won't keep your app alive in the background, it will get suspended.
directly use watch to monitor/ranging with watchOS is prohibited by Apple (it detailed in developer document). It mean you can not turn bluetooth on watch and start monitoring directly! But there're another way, you can integrate app with watchOS, I gave a tried before with our app and it work pretty good. We're using Estimote, you can refer right here: Estimote Watch SDK Integration
It can be transport notification from iOS device to watch. They provide several helpers support that. Good luck!

Restrict future Apple Watch apps to capable devices only

I'd like to restrict the sales of my next app to devices that are able to control an Apple Watch (iPhone 5 at least).
I can't find (in the doc or on Internet) which value for UIRequiredDeviceCapabilities I should put in the info.plist file.
There is currently API for knowing whether a device is paired with Apple Watch.
Even simply from an iOS app review perspective, if a user downloads an app onto their iPhone that app is expected to provide value regardless of any external products.
See Apple's App Review Guidelines for more detail
There is no such API.
As you are also no doubt aware, requiring iOS 9 will also not assist you as it runs on iPhone 4S. While it is speculation, it is possible that this will de facto change if iOS 10 is released in September/October 2016, as expected, as that may remove support for older iPhones that cannot be paired with an Apple Watch (for mostly reasons of performance, unrelated to Apple Watch capability).
However, if you are wanting to do this because you want the app to only be used with the watch, be aware that App Store review requires that apps with WatchKit extensions need to also provide useful functionality in their own right, and cannot be solely the code backend for a watch app. Therefore, you would be expected to provide functionality to users who do not (and even cannot) attach an Apple Watch to their phones.

How to submit an app with companion device to AppStore?

Background:
We are developing an application for one of our customer to go along with their device. The application by itself cannot do anything, and must be connected to the device via Wi-Fi in order to function.
Question:
Do we:
just submit the app the standard way, even though there's no way for Apple to really test the functionality of the app?
or
do we need to provide a test device to Apple to really test the functionality of the app? If so, what's the procedure for doing this?
Edit:
Apple's Not-Very-Helpful Response
While we cannot pre-approve apps, we can address compliance questions about specific App Store Review Guidelines or sections of the iOS Developer Program License Agreement (PLA). I understand that this may be a little frustrating and I apologize for any inconvenience this may cause, however, we may only answer specific questions concerning the following resources, unless the app is submitted for review so that we may test the functionality.
App Store Review Guidelines: https://developer.apple.com/appstore/resources/approval/guidelines.html
iOS Developer Program License Agreement: http://developer.apple.com/membercenter/index.action#agreements
There are a few possibilites that have been reported.
One is to submit a video of the app running with your companion device, with a complete walk-through of the app's functionality using that device.
Another is to provide a device emulator as a test mode built into the app (perhaps requiring two devices).
Another is to provide an demo account in the Review notes; and have that account wifi tunnel out to control a remote wifi device at your location, maybe with a webcam aimed at that device and viewable by Apple.
Include proper contact info for that possibility where Apple may want you to send them a sample device for evaluation.
I have the same issue: a third-party device with which the app communicates. Without the device, the app is useless. One screen with one label. I submitted the app to the store, explaining what it does and how it communicates.
The app got approved 5 days later, without Apple asking any questions whatsoever.

Resources