2015-06-04 3 views
3

Im способен отправить мое приложение через Xcode 6.3.2 отлично. Валидация и анализ проходят отлично. Как только он успешно отправится в магазин приложений, я получаю письмо от Apple:Недействительная подпись - объект кода вообще не подписан

«Уважаемый разработчик, Мы обнаружили одну или несколько проблем с вашей недавней доставкой для« Приложения ». Для обработки вашей доставки следующие проблемы должны исправить: Недействительная подпись - объект кода вообще не подписан. Убедитесь, что вы подписали приложение с сертификатом распространения, а не специальным сертификатом или сертификатом разработки. Убедитесь, что настройки подписи кода в Xcode верны в целевом level (которые переопределяют любые значения на уровне проекта). Кроме того, убедитесь, что загруженный вами пакет был создан с использованием цели Release в Xcode, а не для цели Simulator. Если вы уверены, что настройки подписи кода верны, выберите «Очистить все» «в Xcode, удалите каталог« build »в Finder и rebui ld вашей цели релиза. Для получения дополнительной информации, пожалуйста, обратитесь к https://developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html Когда эти проблемы были исправлены, вы можете возвращать исправленный бинарный.»

Я попытался redownloading в серт распределения, регенерирующее распределение профиль обеспечения, добавил„--deep“в подписание кода «Другие флаги подписи кода». Я даже проверил имя пакета и т. д., все когда-либо было буквенно-цифровым. Я смог подать штраф 22 мая, теперь 3 июня все ломается.

Не имеет никакого смысла, любая помощь был бы оценен!

ОБНОВЛЕНИЕ & РЕШЕНИЕ:

Хотя у меня нет хорошего объяснения, почему это произошло на прошлой неделе, я наконец нашел решение сегодня утром.

Я начал с нового проекта и отправил в магазин приложений ничего, кроме идентификатора и правильной версии и строковых номеров, которые обрабатывались нормально. После этого я начал собирать любые активы, которые не были моим собственным кодом, пока я не получил электронное письмо «Invalid Binary». Я сузил его до SDK хоккея (встроенная инфраструктура), которая вызывала проблему и даже не использовалась, поэтому я удалил ее из проекта (проблема решена). Тревожная часть заключается в том, что ничто не терпит неудачу на моем завершении во время проверки или представления, и согласно github этот каталог и контент не менялись через год, что заставляет меня поверить в то, что что-то изменилось на стороне сервера в Apple.

Я видел много сообщений через google, говоря, что фреймворки необходимы для подписки и т. Д., А при использовании Xcode 6 и iOS 8 это кажется стандартом, поэтому я предположил, что это может быть что-то в этом роде.

Я не уверен, насколько это полезно, поскольку я создавал для iOS, и эта статья относится к Mac, но HockeyApp объясняет, что для распространения в магазине приложений вам необходимо подписать фреймворк с вашей собственной идентификацией здесь:

http://support.hockeyapp.net/kb/client-integration-ios-mac-os-x/hockeyapp-for-mac-os-x

Если кто-то имеет больше технические заметки по этому поводу или почему это вдруг изменилось Id любовь, чтобы понять это лучше.

+0

Такая же проблема здесь с Ионной и Кордовой. Был ли ваш профиль распространения также недействительным? – com2ghz

+0

На форумах Apple Development я вижу, что больше людей сталкивается с одной и той же проблемой. Это может быть проблемой для Itunes Connect. – com2ghz

+0

Одинаковая проблема здесь с Ionic и Cordova - и я не использую приложение для хоккея. Очень очень разочаровывающе. – schmoopy

ответ

0

Я связался с HockeyApp, и они предложили не добавлять SDK в пакет приложений. Поэтому я перешел к Target -> Build Phases -> Copy Bundle Resources и удалил из него HockeySDKResources.bundle. iTunes Connect принял мой двоичный файл.

1

Я проверил множество мест, и есть, кажется, несколько вещей, которые сейчас отвергаются iTunes Connect.Решение, как правило, заключается в удалении злоумышленного ресурса из Target -> Build Phases -> Copy Bundle Resources (как упоминает @azizus). К сожалению, Apple не сообщает вам, какой файл вызывает эту проблему в ваших сборках, поэтому вам нужно охотиться за собой. Вот некоторые пункты, которые я нашел, что это сделает:

  • Shell скрипты (Ищите .Sh файлы, хотя они могут иметь различные расширение)
  • Кроме того, обратите внимание на файлы, которые перечислены как исполняемый файл, когда их не должно быть. Это может быть хорошим местом для поиска сценариев оболочки , которые вы, возможно, пропустили.
  • Каркасы (рамочные пакеты, даже .a или .o файлы - вы не нуждаются в них, поскольку они компилируются в исполняемый двоичный)
  • DocSets (я не знаю, почему, но я обнаружил, что HockeyApp SDK включает в себя комплект DocSet, который был причиной моего опыта)
  • Иногда это может произойти из-за некоторых странных прав . Права, которые у вас есть, могут не совпадать с приложением в портале обеспечения безопасности .
  • Высматривайте недопустимые символы в вашем имени приложения или имена файлов (как подстановочных символов)

Это довольно широкий список, что я сделал, чтобы помочь в поиске построенного архив, а затем показать содержимое .app в архиве с помощью finder, сортировка по типу файла. Странно то, что эти файлы действительно существуют в файле _CodeSignature/CodeResources.

Моя собственная теория о том, почему это происходит, заключается в том, что Apple внесла некоторые изменения (или вносит некоторые изменения) из-за приложений Extensions и WatchKit. По сути, вы включаете несколько двоичных файлов в упакованном IPA (приложение для телефона, расширение, приложение для просмотра). Вероятно, они хотят убедиться, что вы не включаете в себя что-то еще, что потенциально может быть выполнено. К сожалению, сообщение об ошибке слишком неопределенно (действительно, оно неверно) для большинства.

+0

Самый полезный контрольный список. У меня также был файл с провалом plist и файл mobileprovision, который, похоже, вызывает проблемы. –

0

В моем случае это был дублированный info.plist, который не использовался. (было непросто выяснить проблему). Я удалил почти все файлы своего проекта, пока не удалил этот файл, и он работал

0

Очистка значения для правил ресурса кода. Путь в каждой цели разрешил проблему.

1

Это заняло у меня 3 дня для отладки.

В конце концов, это было связано с созданной мной внешней каркасой (позволяет назвать ее X), которую я импортировал через carthage. У X были свои зависимости, которые он импортировал через carthage. Чтобы связать эти фреймворки, у него был путь в настройках сборки, называемый Framework Search Paths, установленным в расположение фреймворков. По какой-то причине именно этот флаг в этой структуре вызывал проблему, указанную в вопросах. Я в конечном итоге импортировал зависимости X с подмодулями Git, так что мне не нужно было устанавливать флаг Framework Search Paths. Я экспортировал фреймворк и вручную добавил его в свой проект, который я отправлял в AppStore. Тогда это сработало.

Смежные вопросы