Вопрос

Наконец-то мы достигли точки нашего первого приложения для iPhone в App Store (или пытаясь), но я не могу получить iTunes Connect, чтобы принять загрузку.

Я предпринял попытку через веб-сайт («Двоичный файл, загруженный вами был недействительным. Подпись была недействительной, или она не подписала с сертификатом подачи Apple».) И прикладной загрузчик («info.plist не содержит cfbundleresourcepsection ").

После большого количества чтения (в том числе Вопросы, как эти), повторное чтение и гугла, я могу сказать, что:

  • Я уверен, что идентификатор пакета соответствует AppID.
  • Есть icon.png, это файл PNG 57x57 PX, и это точное имя в INFO.PLIST.
  • Я делаю устройство, а не симулятор, построить.
  • Процесс подписания преуспевает: результаты сборки показывают это и работает codesign -vvvv MyApp.app указывает на нет проблем.
  • Нет странных символов в пути к Zip-файлу.
  • Я удалил папку сборки и построил бинарную папку несколько раз.

Теперь верно, что встроенное приложение INFO.PList не содержит CFBundleResourceSpecification Ключ, но мне совсем не ясно, откуда приходит эта ценность, или что еще мне нужно добавить, чтобы сделать эту работу. (Единственная ссылка, которую я могу найти с помощью поиска Apple, это некоторые Примечания подписания кода... Но, как я уже упоминал выше, шаг подписания кода преуспевает, насколько я могу сказать.)

Кто-нибудь столкнулся с любыми объяснениями этой проблемы, которую я уже не упомянул?

РЕДАКТИРОВАТЬ: Вот (слегка отредактированная) вывод из шага подписания кода сборки, FWIW:

Код подписания скриншота http://img70.yfrog.com/img70/8988/codesign.png

Это было полезно?

Решение

Проблема, похоже, была, что я использовал JSON-Framework в моем приложении и включая его как дополнительный SDK PO Инструкции в вики. Отказ Я предполагаю, что XCODE запутался на наличие> 1 SDK, и, таким образом, не смог найти ресурсы по умолчанию. Пожалуйста, как он должен.

Я нашел два решения (хорошо, обходные пути, в любом случае):

  1. Используйте настройку «Путь правил ресурсов подписания кода» (которая является пустым по умолчанию), чтобы указать путь к файлу XCode должен использовать: $(SDKROOT)/ResourceRules.plist. Отказ Это работает, а кажется Разумно безвреден, но расстраивает в том смысле, что XCODE должен иметь возможность понять это самостоятельно. (Я нашел это решение в Очень старая проблема подано на JSON-Framework.)
  2. Не используйте подход SDK. Вместо этого просто включите файлы прямо в проект и обновите #import заявления с местными путями. Это подход, который я оказался взять, поскольку мы приняли общее решение сбросить все внешние зависимости в сам проект (так что другие разработчики имеют меньше конфигурации на своих машинах, чтобы встать и работать).

Я не уверен, это ошибка в Xcode или что-то не так с JSON-Framework, но я подал проблему на последнем на всякий случай.

Обновление 30 июня 2010 года: Проблема, которую я подал, был закрыт, и г-н Браутасет планирует удалить поддержку опции SDK в следующем выпуске (2.3) проекта. Так же код сейчас живет на Github, хотя страницы кода Google все еще существуют.

Другие советы

Для меня, после проверки всех вещей (CodeSign, файл значка ...) Но вы не можете загружать свое приложение, попробуйте удалить встроенный файл. Запомните Copying file.app, чтобы ZIP вашего приложения.

Вы уверены, что вы строете с распределением, в отличие от разработки, сертификата и мобильного производства?

Я предполагаю, что вы загружаете файл .zip.

Я только что проверил приложение, которое я загрузил, и CFBundLeresourceSpecification находится только в подписанных версиях (т. Е. Устройство сборки).

Вы делаете какие-либо из вашего здания / копирование / Zipping из командной строки? Если это так, вы должны быть очень осторожны о символических ссылках. То .app Поставляется с подкаталогом в качестве символической ссылки на другую, и если вы копируете его или ZIP без правых флагов, это сложно копировать содержимое, которое портит с помощью кодового значения.

Это случилось со мной - и худшая часть есть, Ad-Hoc создает отлично работать без символической ссылки, поэтому вы не замечаете проблему, пока App Store Building.

Это сообщение может произойти по другой причине (так как я только что обнаружил сегодня утром): если у вашего проекта есть множественная информация. В нем есть несколько info.plists, загрузчик приложения может обнаружить «неправильную» info.plist и запутаться.

Это происходило со мной, потому что автоматическая часть сборки создала info.plist в комплекте, привезенном в проект.

Совет шляпа здесь для решения:http://infinite-sushi.com/2010/08/the-case-of-the-missing-cfbundleresourcepcation/

Для меня решение создает распределительную сертификацию по адресу:Портал разработчика Apple разработчик.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top