2013-07-04 1 views
2

У меня было приложение, загруженное в магазин Apple. Теперь я разрабатываю обновленную версию. Но вместо этого, работая над существующим проектом, я создал новый проект с другим именем. Когда я закончил, я изменил имя и идентификатор пакета, чтобы соответствовать существующему приложению.

Я пытался UPLOADING приложение, чтобы проверить полет, но я получил ошибку

"Invalid IPA: The keychain-access-group in the embedded.mobileprovision and your binary don't match." 

Так что я начал просматривать сеть за ответы ... То, что я придумал, чтобы включить прав. Я сделал, но безрезультатно ... Тогда я отредактирован пособий, меняясь от этого:

$(AppIdentifierPrefix)com.xxxx 

к этому:

12HJ2312.com.xxxx (the number is number of prefix from developer portal) 

И это работало, я мог загрузить. И мир снова был в порядке. Или это было? Я до сих пор не понимаю, почему мне пришлось это изменить. Где:

$(AppIdentifierPrefix) 

красный? Я думал, что он краснеет от брелка, но кажется, что нет, потому что в брелках есть то же самое значение, которое я ввел. Итак, как я могу увидеть это значение и где он нарисовал его содержимое?

ответ

9

Префикс идентификатора приложения указан в профиле обеспечения, который вы используете. Найдите профиль обеспечения в finder. Для этого в Xcode перейдите в окно> Организатор. В организаторе щелкните правой кнопкой мыши профиль подготовки и выберите «Reveal Profile in Finder»). Откройте файл в TextEdit или другом текстовом редакторе, и вы увидите что-то подобное этому внутри, где-то посередине (найдите «Права»).

<key>Entitlements</key> 
<dict> 
    <key>application-identifier</key> 
    <string>A1B2C3D4E5.com.example.*</string> 
    <key>get-task-allow</key> 
    <false/> 
    <key>keychain-access-groups</key> 
    <array> 
     <string>A1B2C3D4E5.*</string> 
    </array> 
</dict> 

Префикс идентификатор приложения в этом случае A1B2C3D4E5

+0

немного поздно, но лучший ответ на это можно найти в следующем ответе: http://stackoverflow.com/a/28714850/774691 –

3

Это изменилось в Xcode 5. Вот как я это сделал:

Откройте приложение Keychain Access на вашем Mac. Ищите сертификат «Разработчик iPhone» для сборки разработчика или сертификат «Распространение iPhone» для сборки ad-hoc и App Store.

Если существует несколько сертификатов, вы можете найти, какой из них вы используете в Xcode, посмотрев поле «Идентификация кода» в вашем проекте «Настройки сборки». Вероятно, он скажет «iOS Developer». Нажмите на это, и он перечислит «Идентичность в цепочке ключей». Это должно дать вам некоторое представление о том, какую личность вы используете.

Назад в Доступ к цепочке ключей, выберите сертификат (например, «Разработчик iPhone»), а затем нажмите кнопку «i» в нижней части окна. Через пару секунд с информацией о сертификате появится еще одно окно. Посмотрите в разделе «Подробности», и вы увидите «Организационное подразделение». Если все нормально, это значение идентификатора будет таким же, как ваш $ (AppIdentifierPrefix), а также должно быть одинаковым как для сертификатов разработчика, так и для распространения. Кроме того, сертификат «Распространение iPhone» должен иметь это же ID-право в названии.

4

Так же, как примечание стороны к ответу Ахмеда:

Значение ${AppIdentifierPrefix} является "A1B2C3D4E5."

Так OPs оригинальный вопрос, что

${AppIdentifierPrefix}.com.xxx вычисляет A1B2C3D4E5..com.xxx, который не будет соответствовать, что ваш профиль говорит.