How to Distribute OS X application Update which is distributed outside the Mac App Store - objective-c

I would like to know which is the best way to distribute a Mac App's Update to my existing app users.
App is distribute out side the Mac App Store so can not use the app store to distribute the update
I would like to do similar to VyprVPN like Download the new version close the app install new version and relaunch the app and this whole thing done without any user interaction.
I want to do like, Application Installed on my user's Mac now I release new version of my Application then how can I update Application already installed ( Previous Version ) in my user's Mac.
Edits:
I tried to Implement the Sparkle Framework for app update features.
But when i try to update my app I receive the PopUp saying new version of application is available but when I tried to install the new version error occurs saying UPDATE Error An error occurred while downloading the update. Please try again later.
Now I could not find reason of this behaviour. Can any one help me in this?
Thanks in advance

You can build the Sparkle framework into your app, and then your app can discover and install future updates.

Related

Updating my Windows store app to Windows10

I have an app in the Windows Store 8 released in good old 2010.
I'm planning to release an update for Windows 10, but i want to save my user base.
Would adding a new version to the Store update my existing app (like in App Store or GooglePlay) or it would create a new instance ?
Thank you.
You upload different app packages for different platforms (wp/win8/uwp) which are all associated with your single app. The user will automatically download the version appropriate for their device. If a win8 user upgrades to win10, and you have a win10 package for your app, then the app will be upgraded on the user's device.

How to detect a MobileFirst iOS app's new version in app store and direct updating programatically?

We would like to make a version checking function by clicking a version checking button inside our MobileFirst app. So how to do a detecting of new version of a MobileFirst iOS app for both appstore version and DirectUpdate version.
For direct updating, it's easy to trigger when client is first loaded (now it works great in our initOptions.js file). But also it seems that wl_directUpdateChallengeHandler.handleDirectUpdate works only when the app is loaded. To trigger it, we have to quit the app and re-initialise it. Can we do it programatically anywhere/anytime within app?
And for appstore version update checking (in fact, this won't be frequent), there are many native ways but is there a hybrid or MobileFirst way to do it ?
For the App Store version check you can implement a Cordova plug-in: https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.0/adding-native-functionality/
For Direct Update, you cannot change its mode during runtime. You can however change its mode to perRequest in authenticationConfig.xml: https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.0/advanced-client-side-development/using-direct-update-quickly-update-application/

Mac app: remove trial version when installing licensed App Store version

I've developed a Mac app which I'm going to distribute through the Mac App Store.
I've also made a trial version which I want to distribute through my website. When the trial period has passed, the user is presented a link to the App Store so she can buy the actual licensed app.
What I'd like to know is; what is the best way to make sure that when the App Store version is being installed, the trial version is overwritten? What if the trial version is still running? Should I make sure it is killed? Can the App Store install an app if there already exists one with the same name in the Applications directory? I don't want the user to have 2 apps installed with the same name.
Can anyone point me in the right direction?
make them ONE app .. same bundle identifier.
One app cannot delete another app
but the appstore can OVERWRITE an existing app IIRC

Terminate and replace app with earlier version to do upgrade install

I'm a newbie in Mac OSx & Objective-C development.
I'd like to ask some help on how to terminate as well as replacing an existing app (with an earlier version) when a later version of the app is being installed or upgraded?
I am aware about updating an app when a new version is available in the App Store or an external server. I've got that covered already. But this one is an implementation for a mac with no internet connection. Upgrading is done manually by installing the app whenever there's a new version available.
Behavior when installing:
It should check if there's an existing copy of the app in the system. It should prompt the user to continue and remove the app or cancel the installation.
If an existing copy of the app is currently running, it should prompt the user to quit the running copy of the app or cancel the installation. When the user selects to quit the app, it should automatically terminate the app and continue with the installation. The app with the previous version should be replaced by the newly installed copy of the app with the later version.
Any help would be much appreciated.
The PackageMaker can do all of this for you. Prepare an installer using this app by Apple. If you are using Mountain Lion then download it from
https://developer.apple.com/downloads "Auxiliary tools for Xcode"
Launch the application and click the edit button in the actions tab below preinstall actions.
In the sheet that is presented add the Quit application action.

iOS Application update with one Localization language removed

I'm working about one application for iOS. Application is already on App Store. But in new version, I have to remove one from Localization languages (Germany). After this, i observed very strange behaviors: When i deploy application on my phone without old version previous application, then everything is okay - if i has iOS set to Germany, application is in English. But when i deploy it when old version is already installed, then application does not show English translation, but only keys form unexisting Germany version ("terms_header" and so...).
My question is: How application will behave, when i send new version to App Store, and users will updates their phones to new version of my application?
When you update the application on any iOS device, it's bundle resources always get updated. However you can test the scenario using
- Install old application from xcode with localization
- Test if localization is working properly
- Update application with new build from xcode
- Re-test the application by changing language.
During updates only user generated data stay intact and bundle resources get updated.
What happens if you remove the application from the organiser and then reinstall it?
Ok, i found it. There is the way to check, how application will behave when is updatet from App Store:
Remove application from device
Generate Archive from old version of your app via Xcode (Product->Archive)
Distribute archived application as Ad-Hoc Deployment
Repeat points 2 and 3. for NEW version off your application.
Put .ipa file with old version of your app into iTune.
Install it on you device via iTune and synchronize device.
Check old version of application on you device.
Put .ipa file with new version of your app into iTune.
Press "Update" in iTunes, and synchronize device.
Check new version of application on your device.
In this case, my application is works.