Ошибка 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 прекратить генерировать этот ключ? Я не очень люблю это делать каждый раз, когда хочу отправить в магазин приложений.
Ответы
Ответ 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: он действительно работает. (У меня была другая проблема, связанная с нею)