I also had this issue. I was releasing Sandbox and Production (different Android Flavors) apps with different package names, but same GCM permissions.
I started using ${packageName}
in AndroidManifest.xml file.
I changed from
<!-- GCM specific permissions -->
<permission
android:name="com.playgong.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.playgong.permission.C2D_MESSAGE"/>
to
<!-- GCM specific permissions -->
<permission
android:name="${packageName}.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
<uses-permission android:name="${packageName}.permission.C2D_MESSAGE"/>
And in receiver's intent-filter from:
<category android:name="com.playgong"/>
to:
<category android:name="${packageName}"/>