Universal App using Health Kit - ios

I'm working on an App which uses some new iOS 8 Health Kit (HK) features.
At present the iPad doesn't get the Health app, so can't use HK. Since the HK features are not a major part of my app functionality, I could happily leave them out of the iPad version.
My problem is that there seems no way to get a universal app running on iPad once the HK entitlements have been added, even if no use is made of HK functionality.
Does anyone know any different? Is there a way (for example) to have separate 'per device' entitlements?
Thanks!

If you want to use HealthKit, Framework Reference clearly states that your app should be primarily designed to provide health or fitness service. If your app is not a health or fitness focused app, you might not able to submit your universal app .
In addition, your app must not access the HealthKit APIs unless the
app is primarily designed to provide health or fitness services. Your
app's role as a health and fitness service must be clear in both your
marketing text and your user interface. Specifically, the following
guidelines apply to all HealthKit apps.
https://developer.apple.com/library/prerelease/iOS/documentation/HealthKit/Reference/HealthKit_Framework/index.html

Removing healthkit from Required device capabilities in my Info.plist solve this issue for me.

Related

Is the requestTrackingAuthorization only needed for IDFA?

I am getting confused if we have to show the requestTrackingAuthorization prompt or not. I thought it needs to be shown when third parties collect any data. Not I got the information from onesignal (which we use for push-notifications) that although they collect date the prompt is for their SDK not needed because they don't collect IDFA.
So in other words: Is IDFA the true reason to show the prompt and other data not?
Thanks
Andreas
Based on Apple's User Privacy and Data Use Website, it is said:
Starting with iOS 14.5, iPadOS 14.5, and tvOS 14.5, you’ll need to receive the user’s permission through the AppTrackingTransparency framework to track them or access their device’s advertising identifier. Tracking refers to the act of linking user or device data collected from your app with user or device data collected from other companies’ apps, websites, or offline properties for targeted advertising or advertising measurement purposes.
In the simple way, IDFA (Identifier for Advertisers) is required if you need to show more personalized ads. As far as I know, based on my experience I need IDFA to show more personalized ads in Google Mobile Ads SDK (AdMob). To achieve this, i have to show App Tracking prompt. When user choose to allow, the SDK can track user and show user more relevan ads. If user choose to not allow tracking, the ads are still showing but maybe less relevan and less personalized.
You have to know what data being collected by OneSignal, because in the end you have to write all them down in App Privacy section in App Store Connect if you want to upload your app to App Store. Since I have no experience using OneSignal, sorry i'm not sure what data they are collecting.
Google has good website documentation about App Tracking policy in iOS 14 to prepare iOS 14 app tracking policy. OneSignal also has Apple App Privacy Requirement.
It is said:
As OneSignal is a third-party to your app, you’ll need to ensure you are properly disclosing to your users the ways you are using OneSignal in regards to their data.
So basically, you have to disclose and write all data collected by OneSignal in App Privacy section when you want to upload your app to App Store. OneSignal collect Purchase and Product Interaction automatically by default. Maybe you use more data type, you have to disclose them.
OneSignal does not collect IDFA as of iOS SDK version 2.16.0*.
*IDFA and IDFV are no longer captured by the OneSignal iOS SDK as of version 2.16.0 and 3.0.0 beta cut 4. If you’re using an older version of the SDK prior to 2.16.0, you will need to disclose this as collected data.
According to the documentation, OneSignal doesn't require you to implement App Tracking prompt since OneSignal does not collect IDFA as of iOS SDK version 2.16.0. Yes, right! You no need to implement App Tracking, assuming that you are only using OneSignal in your app project.
But if you also use other SDK which needs IDFA to work best such as Google Mobile Ads, you need to implement it.

Block screenshots in specific app with Intune MDM?

Microsoft Endpoint Manager / Intune allows blocking screenshots in general on iOS devices by using iOS's MDM features. This seems to deactivate screenshots completely, for all apps.
What we want to achieve though is blocking screenshots only for our specific app (as part of a BYOD policy) and through iOS's MDM features, not through an API invoked by the app itself and also not by using video-based image manipulation which tends to require third-party paid SDKs (preventing photos taken with other devices is not a priority at the moment).
I found a number of questions e.g. 1 and 2 that all target deactivating screenshots from the app in Swift. They basically say that it is not really possible for non-managed devices or requires some obscure tricks. However I want to achieve this using the iOS MDM configuration options, not from the app itself.
Is there anything I have overlooked regarding app-specific MDM policies around screenshots?

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.

Can we unlock content within an iOS app based on real life accessories?

We are part of the Apple MFI program.
We are designing a children’s toy that connects to our iOS app via the iPod Accessory Protocol.
There are multiple configurations of the toy.
We would like to unlock content within the app based on the configuration of the toy.
We are wondering if this is admissible under the app review guidelines? Specifically sections 11.1 and 11.2.
https://developer.apple.com/app-store/review/guidelines/
Thanks,
Dustin
I think your answer is in guideline 11.16 of the document:
11.16 Apps may enable additional approved features or functionality when used in combination with specific approved physical products (such as a toy) as long as the additional features and functionality are either completely dependent on such hardware (for example an App that is used to control a telescope) or also available through the App without the physical products, such as by way of reward for achievement or by use of IAP.

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