Xcode 4.6 автоматическое право не работает - "нет действительной aps-environment"

Я получаю известную ошибку:
Не удалось получить токен, ошибка: Ошибка Домен = NSCocoaErrorDomain Code = 3000 "no valid" строка доступа aps-environment ", найденная для приложения" UserInfo = 0x413be0 {NSLocalizedDescription = нет допустимой строки права доступа aps-environment, найденной для приложения}

Я могу исправить его, отредактировав следующий файл:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

И вручную добавив ключ aps-environment следующим образом:

<?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>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

Затем Xcode генерирует правильный файл Xcent, который содержит ключ aps-environment:

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

И запуск приложения на iPhone способен производить токен устройства для push.
Это единственный способ найти проблему.
(вы можете использовать эту информацию для своего собственного устранения неполадок, если вы столкнулись с этой ошибкой)

Теперь у меня такой же проект работает на другом ноутбуке (синхронизирован с git),
с той же версией Xcode 4.6.
Эта проблема делает не встречаться на этом ноутбуке.
Профиль проекта/профиль подготовки и т.д. Все 100% одинаковы на обеих машинах.
(Пожалуйста, поверьте мне, на этом)

Кто-нибудь сталкивался с такой проблемой с Xcode 4.6?
Вероятно, я должен открыть билет в Apple.

Просто интересно, доступно ли еще более элегантное решение.

Обновление:

Вышеупомянутое исправление может быть достаточным только для этапа разработки, но не для выпуска.

Ответ 1

Более элегантное решение для переопределения по умолчанию Entitlements.plist - сделать копию по умолчанию Entitlements.plist, которую вы редактировали, и поместить это в свой проект.

Затем установите права доступа к коду для какой-либо целевой сборки, с которой вы сталкиваетесь (в этом случае я установил ее для Debug).

http://i.stack.imgur.com/mph9t.png

Затем он должен использовать этот файл plist для сборки Debug (т.е. при простом нажатии Run), и ваше устройство будет регистрироваться на серверах разработки APN