Недействительная подпись (недействительный двоичный файл) в iTunes Connect

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

Я архивирую свое приложение на xcode5 для iOS7 с помощью Release Scheme и исправляю Provisioning Distribution

это экран:

Это на Project

введите описание изображения здесь

И это на Target

введите описание изображения здесь введите описание изображения здесь

Я пытаюсь использовать много разных ресурсов, я уверен, что мой Building Archive находится на Release, но ответ iTunesConnect каждый раз один и тот же:

Уважаемый разработчик!

Мы обнаружили одну или несколько проблем с вашей недавней доставкой для «MyApp». Чтобы обработать вашу доставку, необходимо исправить следующие проблемы:

Недействительная подпись - убедитесь, что вы подписали свое приложение с помощью сертификата распространения, а не специального сертификата или сертификата разработки. Убедитесь, что параметры подписи кода в Xcode верны на целевом уровне (которые переопределяют любые значения на уровне проекта). Кроме того, убедитесь, что загружаемый вами пакет был создан с использованием цели Release в Xcode, а не цели Simulator. Если вы уверены, что ваши настройки подписи кода верны, выберите «Очистить все» в Xcode, удалите каталог «build» в Finder и перестройте целевую версию выпуска.

После исправления этих проблем перейдите на страницу сведений о версии и нажмите «Готово к загрузке двоичного файла». Продолжайте процесс отправки, пока статус приложения не станет «Ожидание загрузки». Затем вы можете доставить исправленный двоичный файл.

С уважением,

Команда App Store

И Invalid Binary

Я схожу с ума, чтобы понять, как решить эту проблему, у кого-нибудь есть идея сделать это?

Спасибо.

**** Тестовый ответ ****

введите описание изображения здесь

Athority Screen верен

введите описание изображения здесь


person BlackSheep    schedule 18.02.2014    source источник
comment
Вы пробовали все, что они сказали, если у вас есть, это решит проблему. Я предполагаю, что вы что-то упустили или неправильно поняли, о чем они говорят. Кроме того, эти изображения довольно бессмысленны, поскольку вы это сделали, поэтому мы не можем фактически увидеть тип используемого профиля подготовки.   -  person Popeye    schedule 18.02.2014
comment
Я добавляю новый экран, говорю, что пробую много разных наборов, не все;)   -  person BlackSheep    schedule 18.02.2014
comment
Не редактируйте вопрос, чтобы показать решение, добавьте решение в качестве ответа, в настоящее время я не знаю, какую ненависть вы спрашиваете   -  person mmmmmm    schedule 03.03.2014
comment
Принято, пожалуйста, не редактируйте вопрос, а ответьте на свой вопрос.   -  person funroll    schedule 20.04.2015
comment
Взгляните на это ответ.   -  person Kampai    schedule 01.12.2015


Ответы (3)


В Xcode на целевом уровне сделайте следующее:

  1. Сначала выберите профиль обеспечения для конфигурации выпуска. (Для Any SDK) Профиль подготовки должен соответствовать Bundle ID приложения (как видно на вкладке «Общие»).
  2. В удостоверении подписи кода нажмите на подменю для Any iOS SDK и убедитесь, что вы выбрали Automatic. Если вы не видите ниже.
  3. Очистить все и Архивировать.

Выбор идентификатора CodeSign:

Если на шаге 2 вы не можете выбрать Automatic, это означает, что у вас может не быть совпадения между AppID и Bundle ID приложения. AppID указывается выбранным вами профилем подготовки.

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

Чтобы проверить .ipa или .app перед отправкой, попробуйте эти команды. Затем посмотрите распечатку и убедитесь, что все в порядке. Также проверьте срок годности.

$cd <where the app is>
$unzip *.ipa
$cd Payload
$codesign -d --entitlement - *.app
$codesign --verify -dvvv *.app
$security cms -D -i *.app/embedded.mobileprovision
person tsafrir    schedule 18.02.2014
comment
Я делаю все, но продолжаю с той же ошибкой (я уверен, что профиль настроен для исправления appId) cms + k чистка все удалить весь архив, но все еще продолжает говорить Invalid Binary T_T - person BlackSheep; 18.02.2014
comment
Спасибо за обновление, добавьте экран результатов, и я думаю, что он правильный, но есть такой же ответ ... Недействительный двоичный T_T - person BlackSheep; 19.02.2014
comment
Хорошо, вот и вывод embedded.mobileprovisioning. Теперь по выходным данным команд codeign убедитесь, что идентификатор совпадает, и найдите Authority = с именем файла мобильной подготовки - это тот, который вы использовали? - person tsafrir; 19.02.2014
comment
Ага ... добавление экрана - person BlackSheep; 19.02.2014
comment
Вы используете Xcode для отправки? В таком случае, вероятно, вас попросят выбрать сертификат перед отправкой. Я предлагаю вам сохранить архив как файл .ipa, а затем выполнить проверку, описанную выше. А для отправки используйте приложение Application Loader вместо Xcode. - person tsafrir; 19.02.2014
comment
Нет, я пытаюсь загрузить из xcode и загрузчика приложений, но результат та же ошибка ... психолог Я иду !!! T_T - person BlackSheep; 19.02.2014
comment
:) Итак, я предполагаю, что если вы используете Application Loader, проверка работает. У вас установлено несколько сертификатов и подготовка для мобильных устройств? - person tsafrir; 19.02.2014
comment
позвольте нам продолжить обсуждение в чате - person tsafrir; 19.02.2014

В службе поддержки разработчиков Apple я обнаружил две дополнительные распространенные причины Invalid Signature причины отклонения двоичного файла:

  1. исполняемые файлы, содержащие специальные символы (т. е. нечисловые и не буквенные). Чтобы решить эту проблему, измените настройку сборки Product Name цели Xcode с «$ {TARGET_NAME}» на строку, содержащую только буквенные / цифровые символы. Сообщите мне, было ли это причиной проблемы (и проблемных символов), потому что я отправляю отчеты об ошибках, чтобы исправить каждый обнаруженный здесь экземпляр.

  2. Двойные файлы Apple («двойные файлы»), которые возникают в результате копирования несжатого проекта Xcode на / с жесткого диска, не отформатированного в HFS +. Чтобы проверить, вызвало ли это ваше отклонение:

A. Запустите диагностику приложения здесь: Как проверить, не повреждена ли подпись моего приложения?

Б. Затем проверьте вывод командной строки с помощью: Список основных причин сбоя проверки подписи. Двойные файлы диагностируются с помощью следующего сообщения:

resource missing: my.app/._.*

C. Из документов:

Файл с префиксом «._» считается файлом AppleDouble и может возникнуть в результате копирования несжатой папки проекта Xcode на диск, не отформатированный в HFS +. Файлы AppleDouble необходимо удалить с помощью команды dot_clean. Папка проекта Xcode является аргументом для dot_clean, как показано ниже. Примечание. Вы можете перетащить папку проекта Xcode из Finder в окно терминала, чтобы автоматически указать путь к ней в команде.

        dot_clean /path/to/My_Xcode_Project

(Если Терминал не может найти утилиту dot_clean, загрузите дополнительные Инструменты командной строки через Xcode> Настройки> Загрузки)

D. После запуска dot_clean в вашем проекте Xcode создайте новый архив приложения (через Xcode> Продукт> Архив), повторите попытку отправки.

Чтобы предотвратить дублирование файлов, не забудьте сжать папку проекта Xcode в .zip с помощью Finder, прежде чем переносить ее на / с жесткого диска, не отформатированного в HFS +.

person Bobjt    schedule 15.05.2014
comment
Спасибо! Для (1), возможно, стоит упомянуть, что вы можете использовать специальные символы в отображаемом имени приложения, явно задав CFBundleDisplayName в plist файле: stackoverflow .com / a / 8115312/188926 - person Dunc; 24.11.2015

Теперь необходимо включить следующую архитектуру.

armv7 armv7s arm64 i386 x86_64

Попробуй это.

person Hardik Mamtora    schedule 20.02.2015