If I build an app for Windows Phone 7 and release V1 they purchase it and download it from the app store. Now let's say there's a bug or I release a new version. How do I publish a new version of the app without them having to pay for downloading a new version of the app?
You publish the update via the marketplace in the same way that you releassed the original version. (Except you say that it's an update.)
Anyone with the app installed will be told that there is an update available and given the option to install it. You can't force the update.
You can't force the upgrade on users.
All updates are free.
If you wanted a paid upgrade/update this would need to be a new app in the Marketplace. You could also remove the old version if/as necessary.
More information at http://developer.windowsphone.com/Marketplace.aspx
Related
We are creating a managed package and want to list it on appexchange.
However, we would like to know salesforce behaviour in below situation since we couldn't find any conclusive docs:
If user has installed appexchange managed package v1. And we have
released new managed package version v2 which is not authorized by
appexchange currently. If we provide this managed package link to
user, can it be installed over appexchange product v1? What are the
implications? Can user later install any new version of package
that is appexchange approved?
And we have released new managed package version v2 which is not authorized by appexchange currently.
If you have released a new version of the same managed package, yes, your users can upgrade from 1.0 to 2.0. If you are using second-generation packaging, there has to be an ancestry line between 1.0 and 2.0 (this is always true for first-generation packaging).
I'm not sure what you mean about "authorized by AppExchange". Possibly you're saying that 2.0 has not been sent through the ISV Security Review process.
If we provide this managed package link to user, can it be installed over appexchange product v1?
Yes.
What are the implications?
I would need to be clearer on what you mean to assess implications.
Can user later install any new version of package that is appexchange approved?
Yes.
I am currently working on a app that I am hosting on Google Cloud. I tried everything in the documentation but may have had the command 'default_expiration: "30d"' in the app.yaml file. I got rid of it but it won't let me push the latest version of my app to make it live. I tried everything I could think of such as 'gcloud app deploy --promote --stop-previous-version' but to no avail. How can I get the latest version of my code live using Google Cloud App Engine.
Cheers,
EDIT:
If I go to the latest version as 'www.version.app-name.appspot.com' it shows the latest version; however, in the App Engine Versions panel, it shows that version with 100% of traffic allocated to it even though when I go to 'www.app-name.appspot.com' it displays a very old version.
I tried deleting all the old versions on the App Engine Versions panel, including the version that is being displayed, and it still shows the old version when going to 'www.app-name.appspot.com' but going to the exact version number displays the correct version. The newest version shows 100% of traffic is being sent there.
Cheers,
It now magically works so I will post the steps I did. I managed to debug it and find out that the version with all the traffic according to the App Engine Version panel wasn't the version being displayed, so, I deleted all the old versions on the Version panel and then it still wasn't working. It was still the same error, that the newest version was not being displayed when visiting 'www.app-name.appspot.com' so I waited around half an hour and now it is displaying the correct version at the main address. See the question for more debugging information.
Cheers,
When I deploy a project I get this error
INVALID_ARGUMENT: Your app may not have more than 15 versions. Please delete one of the existing versions before trying to create a new version.
I also went to versions on google cloud and tried to delete it manually but it says you can not delete a version with traffic shares.
Please help, any advice are greatly appreciated
You'll need to keep one version (latest maybe?) and then migrate all traffic to it with the "Split Traffic" link here, away from all the other versions you want to delete.
Then you will be able to select and delete those versions since they no longer handle traffic.
Finally you deploy the new version (in fact you could do that as soon as you deleted enough versions to no longer see that error) and, if needed, migrate traffic to it.
Also see gcloud app deploy for options related to versioning and traffic migration right at deployment time which could help you prevent such situation in the future:
--promote
Promote the deployed version to receive all traffic.
True by default. To change the default behavior for your current
environment, run:
$ gcloud config set app/promote_by_default false
Overrides the default promote_by_default property value for this
command invocation. Use --no-promote to disable.
--stop-previous-version
Stop the previously running version when deploying a new version
that receives all traffic. Overrides the default
stop_previous_version property value for this command invocation.
Use --no-stop-previous-version to disable.
--version=VERSION, -v VERSION
The version of the app that will be created or replaced by this
deployment. If you do not specify a version, one will be generated for
you.
Salesforce offers an endpoint to know which version is available but doesn't mention if the latest version is available globally or locally, on the requested instance.
For example, the latest version on eu6 is 37 but is it the same globally and can I use the version 37 by hard coding it in my code or everytime a new customer create an account, I need to store the latest version available for his instance region ?
The version endpoint is not global it only applies to the one instance you asked on (eu6 in your example). You should build an integration against a specific version. Worst case latest version -1 is available everywhere, so you could build an integration once today against v36 and it will work for all users of salesforce.
I am unable to permanently delete Google App Engine managed VMs I've created. I've deleted them multiple times both from the developer's console and by using the gcloud command. In every case the command completes successfully and the VM is deleted, but then almost immediately Google creates a brand new VM to take its place.
Does anyone know how to permanently delete managed VMs? Thanks.
We are working on improving this experience. For now, though, one workaround is to deploy a non-Managed VM instance as the default version and delete any other versions that are Managed VM-based. Again, this issue is on our radar to be fixed.
[Chris Ramsdale, Product Manager for App Engine]
I wanted to update this post with some of my solutions to deploying (with versions) and deleting instances on Google Compute Engine's managed VMs. Here's a solution I found for deleting the default GCE managed VM:
Make sure you have the up-to-date GCE components. Run gcloud components update in the Google Cloud SDK Shell.
In your app.yaml, remove the vm:true, resources: section, and manual scaling: section.
Navigate to Compute -> App Engine -> Versions and record the <default-version-number>. Mine looks like 20150722t1245032 with the words (default) indicating the default version.
Deploy the application, set the default, and specify the default version. gcloud preview app deploy "...\app.yaml" --set-default --version=<default-version-number>.
Navigate to Compute -> Compute Engine -> VM instances. Select the default instance and delete.
I was also taught how to stop deploying additional instances:
The key is to specify the version number gcloud preview app deploy "...\app.yaml" --set-default --version=<version-number>. #ZacharyNewman was able to help me with this problem.
And finally, this is how to delete the additional versions of an instance:
Navigate to Compute -> App Engine -> Versions and delete the versions you don't want.
Navigate to Compute -> Compute Engine -> VM instances. Select the instances you don't want and delete.
Hope this helps!
There might be a simpler way to explain this -- "basically, you cannot delete a version that's receiving 100% of the traffic."
Therefore, you just need to create a non managed VM, like a simple helloworld application. Then, you can move all of the traffic to this helloworld application (see graphic, I named mine version 0), then, delete version 20160... or whatever the name of your vm is.
At some point in time, you're probably going to experiment or spin up your managed VM again. When you do that, it will automatically start getting 100% of the traffic.
Or, if you happen to know version number receiving 100% of the traffic, you can always deploy a simple, non managed VM, with this version.
In Google Cloud Console under App Engine -> Versions , select the default version of your managed VM application and use STOP button to turn it off.
I ran into the same problem this is how i was able to stop the managed VM permanently. Just go to appengine -> settings -> disable application. This will automatically stop and delete your VM. In future if you want to run managed vm just enable application this will redeploy your application to the last known version.