Put in the code condition:
BOOL sandboxOption; #ifdef DEBUG sandboxOption = YES; #else sandboxOption = NO; #endif [[GGLInstanceID sharedInstance] startWithConfig:instanceIDConfig]; self.registrationOptions = @{kGGLInstanceIDRegisterAPNSOption:deviceToken, kGGLInstanceIDAPNSServerTypeSandboxOption:@(sandboxOption)}; [[GGLInstanceID sharedInstance] tokenWithAuthorizedEntity:self.gcmSenderID scope:kGGLInstanceIDScopeGCM options:self.registrationOptions handler:self.registrationHandler];
Due to this, the APNS server will now be automatically selected. For release - production, for debug - sandbox. This can help, because sometimes you can forget to change the option, and fill in the build without pushing it, because the sandbox option does not work in production.
Still reloaded p12 for production and sandbox to GCM, which generated from APNS certificates


I understand that the problem was that the wrong p12 was specified for production. Perezaliv fixed the situation.