How do I change my app icon after deployment? - ios

I'm working on my first app and I'm offering a lite version. The standard version features will be unlocked by changing a value in a plist after a user purchase. I also have an app icon for my standard version that is different than the one for the lite version. How can I update my app icon after the user purchases the standard version?
I know I can't change it from within the app...

No, you can't change the App Icon, except your App is a Newsstand App.
For Newsstand App, you can do the followings:
UIApplication *app = [UIApplication sharedApplication];
[app setNewsstandIconImage:newsstandImage];
Alternatively, you can provide an iTunes redeem code to user, to let them download the "standard" version of your App in App Store. Still, the user has to remove the "lite" version himself. (this is not a user-friendly way, though)

Related

How to programmatically open Apple Watch companion app from iOS app

I would like to give a hint to the user, that my iOS app supports the Apple Watch.
So I would like to link/open the Apple Watch companion app from within my iOS app, very much similar to opening the Settings App using ([[UIApplication sharedApplication] openURL: [NSURL URLWithString:UIApplicationOpenSettingsURLString]];)
This shall enable the user to directly navigate to the Watch companion app to setup my app for the watch.
I could not find any URL which would open the companion app in general or specific to a section of the companion app.
If direct linking is not supported, I am also interested in alternative approaches for this use case.
Thanks in advance!
EDIT:
I checked the WatchKitSettings Info.plist file in the simulator to see if it registers any URL schema, but it does not.
I guess it's not possible to programmatically launch the watch companion app from iOS. The opposite way would be possible: to launch the iOS app in the background upon receiving a message from the watch. See WWDC talk Introducing Watch Connectivity.
You could check WCSession.defaultSession().watchAppInstalled and ask the user to launch the app if it is true.
Previously, it was not possible to launch the WatchKit App from the iPhone app, but the iPhone app could be launched—only in the background—with the openParentApplication method.
As of WatchOS 2, however, it is now not possible for either app to cause the other to launch. Instead, there are new methods for queueing changes to be picked up when the other app is launched in the future.
One partial solution for your use case could be displaying a local notification which could be tapped to open the watch app. The primary flaw in such an approach is I do not believe there is a way to limit this notification to the Watch only, so it would also appear on the iPhone where if tapped it would bring the iPhone app to the foreground. Messy if implemented like this, and therefore not worth it I'd have thought, even if it could pass app store review.

Transitioning from Newsstand apps to non-Newsstand apps

In iOS9 there won't be a Newsstand app anymore. What will happen with apps that are using Newsstand? Is there some solution, or will developers just have to re-implement apps to no-Newsstand and count on users to update their apps before they update to the new iOS version?
Yes, That's true.
According to iOS 9 updates here.
Updates in iOS 9
Changes are coming to Newsstand this fall with iOS 9. While publishers can still distribute periodicals on the App Store with auto-renewing subscriptions, the Newsstand app will no longer be pre-installed.
What to Expect
Individual Newsstand apps will now install directly to the Home screen. If a customer had Newsstand apps installed prior to updating to iOS 9, Newsstand will become a folder titled “Newsstand” and their existing apps will be placed in this folder.
Newsstand app icons will no longer be the cover of the latest issue. You should review and update your App icons.
You will still be able to update your issue preview screenshots and metadata without submitting a new binary.
Background downloads will continue and existing subscriptions will be unaffected.
You can also refer to News App - Developer Library for more information

Update Enterprise App in the background [duplicate]

I have an iOS enterprise app that we are wirelessly distributing to our devices. Currently the app polls our server once a day to see if there is an app update. If there is, we try to install it by having the app call the following code:
NSURL *installUrl = [NSURL URLWithString:[NSString stringWithFormat:#"itms-services://?action=download-manifest&url=%#", plistUrl]];
[[UIApplication sharedApplication] openURL:installUrl];
This causes the app to prompt the user with an alert dialog to install the update. If they click install, the app closes and the update is downloaded and installed.
I am wondering if there is anything for enterprise apps for iOS 7 similar to the AppStore's automatic updates? I would like to be able to update our app without the user having to press an update button and be able to update at a time when the user won't have to wait for it to install.
The answers in these questions will give you a correct answer:
Auto-updated iOS application for enterprise distribution
Update In-House Apps -- iOS Enterprise Developer Program
Updating iOS apps automatically with an MDM + Enterprise license
There is a solution for this though by Stephen McMahon, but I did not test it.
http://www.techhui.com/profiles/blogs/auto-updating-enterprise-or-ad-hoc-ios-applications
EDIT: I realise now that I misread the brief, the OP was asking for background automatic updates. Not possible for enterprise apps, but (relatively) easy to do upon first open. I'll leave this here as this was the info I came looking for when I found this question.
Here's what I did for my project. I exported the app in Enterprise mode against our In House Distribution certificate and uploaded the folder to public web space. Have your app check for updates (the method to use is an exercise for the developer) and when one is detected, open a web browser to a URL like the following:
itms-services://?action=download-manifest&url=https://www.yourcompany.com/path/to/manifest.plist
You'll see a screen not unlike the one below:
If you use Cordova/PhoneGap to develop your app, be sure to include an allow-navigation rule for these types of apps.
Sorry, but there is no way how to download the updates on the background for enterprise apps.

Can I update an iOS Enterprise App in the background like an App Store app can?

I have an iOS enterprise app that we are wirelessly distributing to our devices. Currently the app polls our server once a day to see if there is an app update. If there is, we try to install it by having the app call the following code:
NSURL *installUrl = [NSURL URLWithString:[NSString stringWithFormat:#"itms-services://?action=download-manifest&url=%#", plistUrl]];
[[UIApplication sharedApplication] openURL:installUrl];
This causes the app to prompt the user with an alert dialog to install the update. If they click install, the app closes and the update is downloaded and installed.
I am wondering if there is anything for enterprise apps for iOS 7 similar to the AppStore's automatic updates? I would like to be able to update our app without the user having to press an update button and be able to update at a time when the user won't have to wait for it to install.
The answers in these questions will give you a correct answer:
Auto-updated iOS application for enterprise distribution
Update In-House Apps -- iOS Enterprise Developer Program
Updating iOS apps automatically with an MDM + Enterprise license
There is a solution for this though by Stephen McMahon, but I did not test it.
http://www.techhui.com/profiles/blogs/auto-updating-enterprise-or-ad-hoc-ios-applications
EDIT: I realise now that I misread the brief, the OP was asking for background automatic updates. Not possible for enterprise apps, but (relatively) easy to do upon first open. I'll leave this here as this was the info I came looking for when I found this question.
Here's what I did for my project. I exported the app in Enterprise mode against our In House Distribution certificate and uploaded the folder to public web space. Have your app check for updates (the method to use is an exercise for the developer) and when one is detected, open a web browser to a URL like the following:
itms-services://?action=download-manifest&url=https://www.yourcompany.com/path/to/manifest.plist
You'll see a screen not unlike the one below:
If you use Cordova/PhoneGap to develop your app, be sure to include an allow-navigation rule for these types of apps.
Sorry, but there is no way how to download the updates on the background for enterprise apps.

Changing iOS app icon in future version

Is it possible to change the app icon in the future release in iOS.I dint find any document in developer library which states this.Does apple allow to change the app icon in the future update.
Are there any app in the store which have changed the app icon in there update.
When you update your apps in the apps store, you need to resubmit the application again. In this way you can include your updated icons. In addition, you can update your logo,screenshots and description on the itunes connect when you submit your updated apps.
Yes, I recently changed my entire icon set in an update (to a completely different image), and it got through the App Store review process just fine.

Resources