title: Why re-register to gcm when application gets updated?
body: <p>I am using gcm in my application. 
  In Google Developers Console page, I created a project and obtained a project id:</p>
  
  <p><img src="https://i.stack.imgur.com/5j6mS.png" alt="Google Developers Console Project Number image"></p>
  
  <p>Using this project id in my application, the user gets registered to the gcm servers and obtain a registeration id. Then it is sent to my 3rd party server to be stored.</p>
  
  <p>When 3rd party server wants to send message to the user, it uses the apikey I've obtained in the Google Developer Console page in the header of the post action and uses ther registeration id that has been stored for this particular user. The api key I'm using is from:</p>
  
  <p><img src="https://i.stack.imgur.com/ueGHR.png" alt="Google Developers Console Page API key image"></p>
  
  <p>Please note that it's the key for server applications and the way i'm using this information is as just as I explained.</p>
  
  <p>Everything works fine, messages are retrieved by the correct users and so on.I'm planning to deploy my app on google play but what is written in the section:<a href="http://developer.android.com/google/gcm/adv.html#reg-state" rel="nofollow noreferrer">GCM advanced topics</a> confuses me. it says : </p>
  
  <blockquote>
    <p>When an application is updated, it should invalidate its existing registration ID, as it is not guaranteed to work with the new version </p>
  </blockquote>
  
  <p>and on the comment section of the sample code in <a href="http://developer.android.com/google/gcm/client.html#sample-register" rel="nofollow noreferrer">Implementing GCM client sample code</a> there is this comment:</p>
  
  <pre><code>// Check if app was updated; if so, it must clear the registration ID
  // since the existing regID is not guaranteed to work with the new
  // app version.
  </code></pre>
  
  <p>What is meant by these two explanations? I thought unless I press regenerate key here: </p>
  
  <p><img src="https://i.stack.imgur.com/LtHK9.png" alt="Google Developers Console Renegerate Key Image"> </p>
  
  <p>my api key wouldn't change. Why should it (or does it really) change when I update my application? or am I getting something wrong?</p>