Ошибка установки приложения. Не найдена кодовая подпись

Недавно я обновился до Xcode 10 и начал процесс обновления нашего приложения для переключения 4.2. После того, как через день или около того восстановились сторонние структуры и добавлены обходные пути к различным проблемам, я смог запустить наше приложение на новых симуляторах.

Однако, когда я пытался работать на своем личном телефоне (работает iOS 12.0 GM), я столкнулся с ошибкой при установке приложения, как описано в названии.

Я знаю, что есть много уже ответивших на вопросы по этой теме в SO & Internet, но я не смог заставить их работать.

Это блокировало меня около полутора дней, поэтому мне было интересно, есть ли у кого-нибудь представление о том, как это можно смягчить.

Вот шаги, которые я сделал до сих пор, которые не сработали (возможно, они будут работать для других в будущем!):

  1. Очистка полученных данных
  2. Удаление и повторная загрузка всех профилей подготовки на моем компьютере
  3. Очистка каталога сборки (cmd + k & cmd + shft + k)
  4. Удаление исходного приложения с моего телефона
  5. Перезапуск Xcode (версия 10.0 (10A254a) [GM])
  6. Перезагрузка моего Mac (Macbook Pro 2018 с поддержкой macOS High Sierra)
  7. Перезагрузка моего устройства (iPhone X с iOS 12.0 GM)
  8. Множество различных комбинаций из вышеперечисленного, включая все сразу
  9. Повторное создание профилей подготовки для приложения на developer.apple.com (мы используем ручную подпись)
  10. Удаление и повторное создание профилей подготовки для приложения на developer.apple.com
  11. Пожертвовал козу Тиму Куку
  12. Обеспечение соответствия сертификата подписи соответствует профилю подготовки
  13. Удаление старой версии Xcode с моего компьютера и инструменты командной строки на версии xcode 10.0 gm
  14. Удаление и переустановка Xcode 10.0 GM
  15. Обеспечение всех скопированных фреймворков имеет code sign on copy проверенной
  16. Восстановление всех фреймворков через Carthage с использованием компилятора Swift 4.2 (помните, все работает на симуляторе).
  17. Убедитесь, что для подписи кода установлено значение YES в SDKSettings.plist
  18. удалил все старые подписи на моем компьютере
  19. Удаленные и восстановленные сертификаты на developer.apple.com
  20. Удалено и добавлено мое устройство на developer.apple.com
  21. Изменено подписание кода от ручного до автоматического
  22. Убедитесь, что подписывающие сертификаты - это Developer а не Distribution

Любая помощь будет принята с благодарностью :)

Обновление: я попробовал переустановку и восстановление с нуля на новой машине, и та же проблема возникает. Интересно, что я могу архивировать и проверять приложение просто отлично.

Также попытался подписать пустой проект с тем же идентификатором пакета, и он работал нормально. Таким образом, проблема заключается либо в наших сторонних структурах, либо в некоторых странных настройках, которые были включены при переходе с Xcode 9.4. Начинаем снимать сторонние фреймворки один за другим, пока я не смогу его скомпилировать.

Обновление 2: По-прежнему не повезло. Пробовал очистить большинство фреймворков и ничего. Вот журналы устройств, задаваясь вопросом, Skipping a profile because of error 0xe8008012 ли это с Skipping a profile because of error 0xe8008012:

https://gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5

Обновление 3: Таким образом, я смог установить его для установки, комментируя скрипт-фреймворк Carthage на этапах сборки (и после этого производя данные очистки /nuking). Конечно, это означает, что он падает при загрузке, так как он пропускает эти фреймворки, но это означает, что проблема связана либо с carthage, либо с одной из связанных фреймворков. Не наши подписывающие сертификаты, профили обеспечения или кодовая база. Попытаемся удалить эти рамки один за другим, и я обновлю здесь.

Окончательное обновление. Решение оказалось довольно нишевым (см. Ниже), но, надеюсь, этот вопрос служит компиляцией каждого решения, связанного с этой проблемой в Интернете ха-ха.

Ответ 1

Догадаться:

Я столкнулся с этой проблемой с carthage: https://github.com/Carthage/Carthage/issues/2472 и использовал предлагаемое решение для установки EXPANDED_CODE_SIGN_IDENTITY = '', когда я переносил содержимое на xcode 10.

Очевидно, эта линия - это то, что заставляет Carthage вредить себе при копировании фреймворков, вызывая ошибку. Я загрузил самую последнюю версию carthage, чтобы исправить эту проблему, а затем удалил строку EXPANDED_CODE_SIGN_IDENTITY='' и все сработало. Что за трата времени.

Ответ 2

Не уверен, что это также ваш случай, но я также столкнулся с этой ошибкой недавно, пытаясь запустить приложение React Native на iPhone. Это началось после того, как я включил библиотеку Lottie для React Native

Проблема была вызвана тем, что этот сценарий запуска добавлен в фазах сборки: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/. Сценарий не смог извлечь архитектуры из Lottie.framework, давая "input file (.../Lottie.framework/Lottie) must be a fat file when the -extract option is specified

Чтобы исправить это, я добавил проверку в сценарий, чтобы пропустить обезжиренные файлы:

# ...
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -iq "Non-fat file"
then
echo "This is a non-fat file, skipping"
continue
fi

EXTRACTED_ARCHS=()
# ...

Ответ 3

У меня была такая же проблема с xcode 10.0 (10A255).

Недопустимая подпись. Запечатанный ресурс отсутствует или недействителен. Файл по пути [xxxx.app/xxxxx] неправильно подписан.

xcode 9.4.1 (9F2000) всегда мог отправить приложение без проблем.

Я мог бы устранить проблему, удалив все поддерживающие файлы (txt, json, rtf, html, ttf и т.д.), А затем добавив их снова.

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

Ответ 4

В моем случае у меня были как недопустимые конфликты iPhoneXS, так и идентификатор идентификатора пакета. Мой проект был предпринят после обновления Xcode и добавлен новый телефон. После выполнения вышеуказанных шагов (полностью воссозданная цепочка ключей и профили, удаленная постоянная папка и т.д.).

О целевых настройках проекта:

  1. Установить идентификатор пакета из com.proj.app на что-нибудь еще, например: com.proj.app2
  2. Изменить название продукта с продукта на продукт123

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

  1. Изменение обратных идентификаторов на нормальный (при желании)