Mac app: remove trial version when installing licensed App Store version - objective-c

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

Related

Testing Mac App Store app on real device - How to export?

I have been developing Mac App Store and iOS apps for several years now. I don't event want to know how many hours, days or weeks (?) I spend by solving provisioning problems...
One of my Mac apps targets OS X 10.7+. While everything works fine in genereal, after the last update some users reported problems when using the app on 10.7. Other OS X version work fine.
In the past, I simply cloned the project from my developing computer (iMac) to my MacBook running the specific OS X version. I then opened the project in Xcode, ran it and check what the problem was. This is far to easy for Apple, since this not possible any more.
The project only compiles (due to several reasons) in Xcode 7+ only. Xcode 7 runs on 10.10+, thus testing on 10.7 is not possible.
I have been trying to build/export the app to test it on my MacBook the whole day without any success. The app simply does not start on 10.7 on my MacBook. Of course the MacBook is a registered devices, included in my provisioning profiles, etc.
This is my workflow:
Removed all App Store specific entitlements from the app in Xcode/Target/Capabilities
Created new wildcard certificates and provisioning profiles that does not include any App Store specific entitlements
Selected the new profiles in Xcode/Target/Build Settings/Code Signing
Run Product/Archive
In Organizer select the Archive and click on Export
Here I tried several different combination (signing, no signing, etc.). No matter if I choose Export a Developer-Signed Application or Export as a Mac Application the result is always the same.
When I copy the created App file to my MacBook und start it nothing happens. The icon flashes once and this is all. Only the Console gives I hint about the Problem:
killed com.mycompany.myapp because its use of the com.apple.developer.team-identifier entitlement is not allowed.
Great... As explained I removed all entitlement from the app and from the profiles. Where the hack does this entitlement come from and how do I get rid of it?
Is there no way to test the App with all its features (== all entitlement) on another device?
I should have answered my own question earlier. Back in January I was somehow able to get the app running on my other Mac. Now I had to solve the same problem and it took some time to dig out the correct solution again.
So, maybe this will help others to solve the same problem. At least it will help my future-me to remember what has to be done :-)
Archive the app just as you would prepare the app to be submitted to the App Store.
Switch to the Organizer and select the just created archive
Select Export... instead of Upload to App Store...
Select Export a Developer ID-signed Application(second option). DO NOT select Export a Development-signed Application (third option). Actually I have no idea what's the difference is, but only the first one works...)
Click Next and the Organzier will fetch provisioning information from your dev account. DO NOT select the fetched provisioning profile but select Use local signing assets from the dropdown box instead
Click Choose and Export in the next step.
Done
Good luck and happy app signing...

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 Distribute OS X application Update which is distributed outside the Mac App Store

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.

iTunes Connect Testflight Internal Testers

Downloading beta app from testflight app gives error at the end, says "Unable to download app at this time" on all my devices.
No error is in itune connect upload. App displayed and received notification on adding new app to testflight beta. But everytime same error.
This happened to me when I wasn't using the correct provisioning profile. Very frustrating error that doesn't provide any useful info, and leaves the previous installed version of your test build in a state where it cannot be launched. After I switched my provisioning profile to 'Automatic', bumped the build number, and submitted a new version to iTunes connect I was able to download the new build.
I'm seeing a similar error. I don't know for sure, but I suspect doing things in this order may have something to do with it (this seems to mirror what emrys57 is facing).
You have issued a previous TestFlight release (download/install was working).
You then submitted that version for formal review for publication in the App Store.
While the app submission is still under review, now you uploaded a new TestFlight build with an updated version number (but did not resubmit for App Store review).
It could be that while the app is under review something prevents the download. I seem to recall reading about something like this in one of the guides, but I can't remember where off the top of my head. In my case, as an internal tester I even face the error "Unable to download app at this time", regardless of whether I already have a previous version with the same bundle ID already installed or if I don't have the app already installed (i.e., it's fully uninstalled). I wonder if an accepted App Store review will clear up the issue; it doesn't seem like a good idea to resubmit that latest build for further App Store review if the version previously submitted is what you actually want released.
In my case, for the general testing audience, I have a separate bundle ID that is exclusively for beta testing. And that version is never submitted for App Store review (the one that's slated for App Store review I only use for the purpose of smoketesting the upgrade process with internal testers). That bundle ID for beta had to go through the one-time full TestFlight external review for the initial TestFlight external beta testing. But I've been able to keep adding new versions to that beta-only bundle ID for subsequent TestFlight releases without an issue.

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.