У меня возникла именно эта проблема (с тем же учебным руководством, но не менее), и я обнаружил, что я подписывал код с неправильным профилем обеспечения.
В частности, я включил только «производственные» push-уведомления для своего приложения (так как я не хотел создавать сертификаты дважды и т. Д.), Но в моих настройках сборки в XCode использовалась «Разработка iPhone» в качестве «Идентификации подписи кода» по умолчанию для Release », а не« iPhone Distribution », как это и должно было быть. Похоже, что это настройка по умолчанию в моем тестовом приложении.
Надеюсь, я смогу помешать кому-то еще тратить время на ту же проблему.