Subscription promotion before iOS 11.2 - ios

Background
My app has a few subscription products, one of which offers a promotion e.g. 50% off for the first month.
What I am trying to achieve
When I query for the products via StoreKit, I'd like to know if one or more products have promotion enabled on a pre-11.2 iOS device.
What I have tried
When I query StoreKit for all products, StoreKit gives me an array of SKProducts.
If it's iOS 11.2+ device, the goal can be easily achieved by checking SKProduct.SKProductDiscount, however, my app supports iOS9+ and pre 11.2 devices don't support SKProductDiscount(introductory pricing). Wondering if there is a way that I can achieve the same goal for users running on a pre 11.2 iOS device?

Related

Apple HealthKit Determine Between Watch and iPhone

Currently we are programming an application in Xamarin. The application pulls activity data from the apple health kit. We haven't found a class that can distinguish between the apple watch and the iphone data, when we pull from the Apple Healthkit. For example, when someone walks with their phone and watch it is logging steps for both devices. So we are having trouble getting an accurate count.
I know Swift has predicateForObjects & HKSourceQuery. However, is there a version of these classes for xamarin?

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.

Shared iAPs/subscription among iPhone, iPad and macOS Catalyst apps?

I look around but could not find an answer. If my iOS/iPadOS and macCatalyst are based on a subscription or contain in-app purchases, is it possible to have the same subscription for the 3 apps, or restore the purchase for all 3 apps? As in, when the user subscribes on iPad, can the subscription carry over to the macCatalyst app, using only Apple's technologies?
Tested this question, from different applications come different recipes from the same ICloud. Merge failed.
As of March 2020, this is now possible using Universal Purchases:
https://developer.apple.com/support/universal-purchase
Distribute iOS, iPadOS, watchOS, macOS, and tvOS versions of your app as a universal purchase to let customers easily enjoy your app and in‑app purchases across platforms. They’ll only need to purchase once on the App Store.
This seems to rely on the use of the 'use iOS bundle identifier' to make sure the bundle ids are the same. With Catalyst apps released under xCode 11.3 or earlier there is additional work involved to move them over to a single bundle id

Enable multiplayer games with GameCenter between iOS and macOS players

I am trying to create a multiplayer game that is playable between iOS an macOS users.
To enable multiplayer gaming I make use of Apple's GameKit framework & GameCenter service for matchmaking.
Initially I tried to use the same bundle id and at least then it was possible for players to find each other between iOS and macOS platforms, however Apple doesn't allow to use the same bundle id between iOS and macOS apps in the AppStore.
So now that I changed my bundle id for iOS to be different, it's not possible for iOS players to find macOS players anymore and vice versa when using GameCenter / GameKit.
I read up in the documentation and there's supposed to be a "Multiplayer Compatibility" section in AppStore Connect that should allow iOS and macOS to play against one another.
In iTunes Connect, you can provide compatibility information that describes which versions of your game can see each other during the matchmaking process. Each compatible group of devices and versions of your game are matched as separate groups.
The ability to create these matchmaking groups is quite flexible:
When you create a new version of a game (such as a bug fix), you can declare whether the new version is compatible with the older versions (and which ones, specifically).
You can create distinct games (with different bundle identifiers) and still allow them to play against each other.
You can create distinct games on both OS X and iOS and match them against each other.
However when I log in into AppStore connect this section seems to be gone. I didn't find anywhere if Apple removed this functionality somewhere from AppStore connect.
So my question is, is it still possible to somehow enable this functionality for my iOS and macOS app?
P.S.: Adding the iOS and macOS bundle id's to the same group in AppStore Connect doesn't seem to work either. I guess these groups are only meant to share leaderboards and achievements between platforms?

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.

Resources