Would it be possible to add inapp purchase inside extensions in iOS 8?
For example, a custom keyboard may have free and pro versions based on inapp purchase.
Thanks a lot in advance.
The custom keyboard requires a container app anyhow, it would probably be a good idea to do it there. You could likely have UI on your keyboard interface to link to the app via openURL: directing users on how to purchase the "Pro" version. With that said, you can tell which APIs are not accessible if they are annotated with the NS_EXTENSION_UNAVAILABLE_IOS macro. You can see this on [UIApplication sharedApplication] as an example. If none of the StoreKit APIs you need to perform the purchase are marked as unavailable, it's likely that you'll be able to get it done within the extension.
Related
I have noticed that Apple rejecting custom keyboard app if its doesn't have any feature which will work if Allow Full Access toggle is FALSE.
But I wanted to implement extension keyboard which will work only after Allow Full Access toggle is TRUE in device settings.
The short answer is no, and if they do you risk being denied in the future.
Apple's App Store Review Guidelines section 4.4 requires compliance to the App Extension Programming Guide and additionally, for Keyboard extensions section 4.4.1 states:
Extensions must:
Remain functional without full network access
Collect user activity only to enhance the functionality of the user’s keyboard extension on the iOS device.
Extensions must not:
Include marketing, advertising, or in-app purchases;
Is it possible technically to provide a 'Today Extension' as an in app purchase?. As far as i can see, soon after you install the main target, the extension target is also getting deployed. I dont see a way to limit that. My idea is to provide one extension for free and other two remaining extensions as in app purchase. Since each extension lives as a seperate target in the xcode, am not sure how to proceed. Any insight will be really helpful
Regards,
Kesava
Because extensions must be delivered with the app and you will need to include all 3 extensions when you build and submit your app + extensions to Apple, I think your best option is to provide all 3, but in the two "premium" extensions, check if the user has made the in-app purchase. If not, provide an overlay that explains that the extension requires an in-app purchase and provide a button to take them to the app to make the purchase.
You might even be able to request the in-app purchase from within the extension, if that's an experience you think would be good.
I am building an album app. I want to set a photo in my own app as wallpaper. Is there some method available for doing so?
update:
I know there are already some similar questions posted. But they are out of time. So I am wondering if there is some method in iOS7 to implement so.
For apps going into the app store this isn't possible. Apps can't change anything outside of their environment this is because apps on iOS run in a sandboxed mode so they don't know anything about other apps that are on the device and can't affect the OS directly.
To actually do it you would probably need to use some private API so your app would get rejected under:
2.5 Apps that use non-public APIs will be rejected
but I suspect that they would actually reject it under:
10.4 Apps that create alternate desktop/home screen environments or simulate multi-App widget experiences will be rejected
As you are directly altering the home screen.
Is there a way to pull properties from iOS Smart App Banners without actually rendering the banner? I'd like to use the banner to tell me if an app is installed on the phone or not since it apparently can detect that.
No. Apple does not expose any APIs to web pages to access the app banner (at least not any documented ones).
However, if your app supports a URL scheme, you could use one of the (slightly hacky) methods described in the answers to this question to check whether you can open that URL (and hence check whether the your app is installed).
I recently downloaded an app (Overkill) and they have an in game "virtual currency" called "overkill medals" or "OM". You can use the in-app purchase system to buy more OM, or you can earn it, through their service called "Tapjoy."
Tapjoy (inside the Overkill app) brings up a menu with eligible apps, and a link to the iTunes store to download it and requires you to "download and open" the app in order to earn your OM.
How does this app know that I have downloaded and opened the app, in order to award me the OM?
Edit: It also seems to know when I had the app already
The app is likely checking to see if another app has registered a custom URL scheme, by calling UIApplication canOpenURL, against a list of known schemes dolled out by Tapjoy to each implementor.
The isn't anything within the Apple's iOS SDK that would allow this, so in all likelihood each of these apps is registering with a web service. The server is tracking installation and use of the various apps by relating the unique device id.