Подтвердить что ты не робот

Ошибка Xcode 4.1

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

В основном, когда я архивирую свое приложение для Mac, он проходит через все обычные процессы. Сборка выполнена успешно. Однако, когда я отправляю в магазин приложений, я получаю следующее сообщение:

Invalid Code Signing Entitlements - Your application bundle signature contains code 
signing entitlements that are not supported on Mac OS X; this may happen if your Mac OS X 
project was ported from iOS. Please check your Xcode project code signing entitlements 
configuration, and remove any unneeded entitlements.

Specifically, key "application-identifier" in "My App" is not supported.

Мое приложение не было перенесено из iOS, и я никогда не устанавливал права доступа. После многих часов копания я обнаружил, что фаза кода знака генерирует файл .xcent в этом формате:

<?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>My.App.Identifier</string>
    <key>com.apple.application-identifier</key>
    <string>My.App.Identifier</string>
</dict>
</plist>

Первый ключ - тот, который вызывает проблему. Когда я удаляю это и принудительно отменяю приложение с тем же файлом .xcent через командную строку, приложение переходит через.

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

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

4b9b3361

Ответ 1

У меня такая же проблема. После прочтения вашего сообщения я немного исследовал.

Похоже, что во время процесса создания файл .xcent создается из файла, расположенного в /Developer/Platforms/MacOSX.platform/Entitlements.plist(он также может быть расположен в /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Entitlements.plist).

Я отредактировал этот файл и заменил "application-identifier" на "com.apple.application-identifier". Итак, теперь файл .xcent содержит только:

<?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>com.apple.application-identifier</key>
    <string>33R9UFHX3C.com.mycompany.myapp</string>
</dict>
</plist>

Однако я все еще сталкиваюсь с неправильной двоичной ошибкой при создании и ее загрузке.

EDIT: он действительно работает. (У меня была другая проблема, связанная с нею)