APNS Push-уведомления головная боль; работает на развитие, но не на производство - PullRequest
12 голосов
/ 24 декабря 2010

Привет, друзья! Я был здесь по крайней мере неделю.За всю мою жизнь я не смогу получать push-уведомления, работающие на производстве, отлично работает в разработке.

Я пробовал любое решение, которое смог найти в Интернете, ничего не получалось.

Я восстановил сертификаты по крайней мере в 100 раз

Мой файл authorlements.plist хорош -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>get-task-allow</key>
    <false/>
    <key>aps-environment</key>
    <string>production</string>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

Ofcoures, когда я изменяю среду и get-task-allow на true, он работает нормальнос gateway.sandbox.push.apple.com.Я также пытался с точным именем пакета, а не "$ (AppIdentifierPrefix) $ (CFBundleIdentifier)" *

Но когда я меняю aps-environment на production и get-task-allow на false (даже пробовал с true) -устройство не получает никаких уведомлений.

Я пробовал использовать pushmebaby, писать свой собственный скрипт, easyapns - все работают с разработкой.Я просто не могу понять, почему он ломается в работе.

Мои настройки сборки хороши, я создал дубликат конфигурации выпуска, назвал ее ad-hoc и установил элементы кодирования для обозначения authorlements.plist и идентификатор длясоответствующий профиль.

Я использую тот же метод для создания файлов сертификата, который я использовал для создания сертификата разработчика

openssl pkcs12 -in aps-production-cert.p12 -out aps-production-cert.pem -nodes

Когда я использую код знака -dvvvv --entitlements -Forecast.app я получаю это - который выглядит хорошо.

Executable=/Users/seantan/Documents/Alpha/build/Ad-Hoc-iphoneos/Forecast.app/Forecast
Identifier=com.xxxxxxxx.wforecast
Format=bundle with Mach-O universal (armv6 armv7)
CodeDirectory v=20100 size=2651 flags=0x0(none) hashes=124+5 location=embedded
CDHash=63a3d238db30f8e4fd3c2a545867fe2fe645a981
Signature size=4313
Authority=iPhone Distribution: xxxxxxxx
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=Dec 24, 2010 2:24:08 PM
Info.plist entries=25
Sealed Resources rules=3 files=200
Internal requirements count=1 size=216
??qq?<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>SYK86VV33F.com.xxxxxx.wforecast</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>SYK86VV33F.*</string>
    </array>
</dict>
</plist>

Я полностью вне идей / решений.Кто-нибудь может указать мне правильное направление?

Прежде чем кто-то предложит, я попробовал с gateway.push.apple.com для производства и gatetway.sandbox.push.apple.com для развития

1 Ответ

2 голосов
/ 13 марта 2011

У меня были похожие проблемы.Мне очень помогло выполнение инструкций, описанных на , в этом документе Apple для разработчиков Мне пришлось внести несколько изменений, поэтому я не могу точно сказать, что решило проблему.Может быть, у вас проблемы разные, но здесь есть надежда, что что-то там вам поможет.

...