8

Am I being particular dense today? I'm working on an app that needs to offer legacy subscriptions to old iOS versions and auto-renewing subscriptions to newer iOS versions.

Normally I would check using a respondsToSelector test for something appropriate in the classes I want to use, but I can't see anything in the storekit that has changed that would allow me to do the test.

So how should I check to see if the device supports auto-renewing subs? I know I could check the explicit iOS version number, but I'd really prefer not to do that.

Is there a more sensible check I can do?

Roger
  • 15,793
  • 4
  • 51
  • 73
  • What kind of app is it? Will it have new content each month? Is there a particular reason why you need to know if the iOS supports auto-renew? – Bot Feb 23 '12 at 20:48
  • Does it make sense to even install you app if the user cannot buy inapp purchase ? Is that a "freemium" app ? – yonel Feb 23 '12 at 21:20
  • Yes, the app qualifies for auto-renew. I need to know so that we only offer auto-renew subs to devices that support it, we will offer legacy subs to older devices. @yonel, the user will always be able to buy - that's my point. To older iOS versions we offer a legacy subscription, to newer iOS versions we offer auto-renewing - it's just that I'd rather not use an explicit version check but test for capability instead. – Roger Feb 24 '12 at 00:18
  • 1
    Why are you not wanting to utilise checking the iOS device version specifically? Is there something that is deterring you away from doing such a thing, if so, what? – Sebastien Peek Feb 24 '12 at 04:43
  • 2
    OK. Just be aware : I submitted a auto renew app few months ago, it has been rejected because it's not a "magazine" (content was updated every day however in my app). So be careful of that: the "old" subscription mechanism is not deprecated at all and is encouraged by apple for anything that is not a magazine. Morever combining the two types of subscriptions sounds "exotical", I'm not even sure this would be validated by apple, and would require a lot of additional work. My advice : stick to the "legacy" subscription (I had to switch to that one to get my app validated) – yonel Feb 24 '12 at 09:22
  • 1
    Don't worry, we have other apps in store using auto-renew (but they had the luxury of having being targeted at ios5 only right from the start). The issue is purely with an older app that I don't want to raise the lowest deployment version on because that would freeze out quite a lot of users from upgrading to new features. Apple advise to use capability checking and so I was looking to see if there was a sensible check I could do. – Roger Feb 24 '12 at 09:33
  • It seems to me that the addition of Auto-Renewing Subscriptions is something that could be implemented entirely server-side without an update to the OS. I would think it would work on any version. – Andrew Mar 11 '12 at 08:30
  • Actually, it looks like I'm wrong. This answer suggests version 4.2 and later: http://stackoverflow.com/questions/6667856/what-is-the-minimum-target-ios-version-for-auto-renewable-subscriptions/6917058#6917058 , you could check this list for API changes in 4.2 and test for one of those but I guess that misses the point: https://developer.apple.com/library/ios/releasenotes/General/iOS42APIDiffs/index.html – Andrew Mar 11 '12 at 14:53

2 Answers2

3

Why not just check for the iOS version that you need? How hard is that?

TomSwift
  • 39,369
  • 12
  • 121
  • 149
  • If I have to, I'll have to. It's generally not considered good practice and leads to fragile code (I've worked on projects that broke when iOS5 was released for just this reason [not my code I hasten to add]) and so I was reaching out to see what other people were doing in this instance. I'm suspicious that I can't find anyone else referring to it in the context of legacy Vs auto-renewing subscriptions which makes me think that there might be other issues I haven't considered ... – Roger Feb 24 '12 at 09:47
  • Not really, since old iOS versions aren't maintained anymore. It's totally different when a new product gets released but the legacy one is still maintained independently for a while. – Spidey Mar 01 '12 at 14:30
2

Hey Roger I was in a local meetup group for iOS developers and the topic of auto-renewing of subscriptions came up.

1 It is meant for "Magazines", which I would assume works only with Newsstand Apps

2 and it is ONLY meant for "Established" publications.

Which implies a printed version, and not just any ole' publication. This must be a nationally syndicated thing, something you would find on every major news stand in the country.

From what I gather in the conversation, Apple does not mean for the auto-renewal feature to open any new monetization channels for app developers (not yet at least), but rather the feature was created to extend the existing business model of print publications to the iPhone iPad digital media. Perhaps sometime in the future, this feature will be extended to all apps in the app store. Here's hoping.

Community
  • 1
  • 1
Fang Chen
  • 236
  • 2
  • 14