Запуск приложений iOS вызывает ошибку времени выполнения для фреймворков «подпись кода недействительна»

33

Каждый раз, когда я пытаюсь запустить это приложение, оно строит ОК и устанавливает, но как только оно запускается, приложение ломается и печатает это сообщение об ошибке. XCode 11 и iOS 13.

dyld: Library not loaded: @rpath/StandardCyborgFusion.framework/StandardCyborgFusion
  Referenced from: /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/StandardCyborgExample
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion: code signature invalid for '/private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion'

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

  • Уборка и строительство
  • Перезапуск XCode
  • Перезапуск Mac
  • Полностью сбрасываемый брелок
  • Проверка всех сертификатов цепочки для ключей Настройки доверия на «Использовать системные настройки по умолчанию»
  • Заводской сброс моего Mac

ОБНОВЛЕНИЕ 1: Кажется, это проблема с моим устройством iOS. Приложение может запускаться на симуляторе, но симулятор не подходит для моих целей разработки, поэтому мне нужно заставить эту работу работать на моем устройстве. Я недавно обновил свой iPhone XR до iOS 13.3.1.

ОБНОВЛЕНИЕ 2: обнаружена другая группа, которая, кажется, имеет ту же проблему https://github.com/flutter/flutter/issues/49504 .

Эйдан Россвуд
источник
откуда берется StandardCyborgFusion.framework? обратитесь к разработчику ...
user3441734
1
Вы пытались связать или встроить фреймворк?
Пешеход
1
Эта ошибка происходит со всеми приложениями. Не является структурно-специфичным
Эйдан Россвуд
Добавлено обновление. Похоже, это зависит от устройства, так как он работает на симуляторе, и мой друг может собрать те же фреймворки на своем устройстве.
Эйдан Россвуд
1
Ваша StandardCyborgFusion.framework либо не имеет подписи кода, либо не скомпилирована для архитектуры arm64. Вы все еще не сказали нам, как вы получили структуру. Также, если кто-то скажет вам перезапустить Xcode, чтобы исправить проблемы компиляции / компоновки, уменьшите их.
Клаус Йоргенсен

Ответы:

25

Я использую CocoaPods, и для меня это исправляет ошибку (Ответ Wasa22 на вопрос github):

  1. Откройте подфайл
  2. Закомментируйте use_frameworks!
  3. Добавьте use_modular_headers!
  4. В Терминале выполните обновление модуля -> Установка модуля
  5. В Xcode Очистить (Command-Shift-K) -> Построить и запустить.

Источник: https://github.com/Alamofire/Alamofire/issues/3051

Paul11100
источник
Это решение действительно работает!
RapsIn4
У меня не было времени, чтобы проверить, работает ли это, так как я заимствовал учетную запись разработчика, но я отмечу это как правильное. Я был бы признателен, если бы другие могли подтвердить, что это работает и для них.
Эйдан Россвуд
Что если у меня нет подфайла, что я могу сделать в этом случае?
abdou31
1
закомментируйте use_frameworks и достаточно запустить команду pod update
Лахиру Прасанна
27

Это проблема с iOS 13.3.1. Все динамические платформы, компилируемые в новейшую версию iOS 13.3.1, испытывают эту проблему при запуске из личного профиля обеспечения / учетной записи разработчика. Решение, скопированное из jmagman из Github, приведено ниже.

Вы можете:

  1. Используйте профиль, не относящийся к персональной команде (платная учетная запись разработчика).
  2. Запустите на симуляторе 13.3.1.
  3. Протестируйте на реальном устройстве iOS с версией 13.3 или ниже.
  4. Установите бета-профиль на тестовое устройство и установите iOS 13.4 beta 3. (исправлено)
  5. Дождитесь выхода iOS 13.4.

Надеюсь, эта проблема будет исправлена ​​в ближайшее время.

Эйдан Россвуд
источник
Я понижаю версию iOS 13.3.1 до 13.3. Не могу просто остаться и подождать, пока Apple исправит это.
Старски
Хм ... кажется, что я не могу сделать резервную копию своих данных при наличии iOS 13.3.1 и затем восстановить ее на iOS 13.3. Это печально ((Восстановление должно быть выполнено под теми же версиями iOS. Так что, это тоже не решение ...
Старски
Хотел бы я найти этот ответ раньше. , , Я потратил 3 часа, пытаясь настроить параметры сборки, двоичные файлы и фазы сборки. , , Получение платного аккаунта решило это заранее
Маркус Ким
Классическое яблоко, создающее ошибку, которая заставляет вас что-то покупать.
Дарий Бухай
Большое спасибо за четкий и правильный ответ +1.
мАч
3

Похоже, это исправлено в iOS 13.4 beta 3. Вы можете установить бета-профиль или дождаться выхода iOS 13.4.

Дженн
источник
1
24 марта Apple выпустила iOS 13.4. Это обновление включает в себя исправление проблемы с подписью кода! Пожалуйста, обратитесь к iOS 13.4 бета 3 для получения дополнительной информации.
Ровер
2

Я вижу 2 способа это исправить.

  1. Переход на iOS 13.3. iOS 13.3.1 ломает подпись третьих лиц, если у вас нет платной учетной записи разработчика. Если возможно (получите дешевый iphone, посвященный разработке)

  2. Обновите Mac OS, XCode и iOS до последней бета-версии (обновление любого из них само по себе не будет работать, поскольку бета-версия iOS требует последней бета-версии XCode, а Xcode требует новейшей Mac OS Catalina)

zhuangr
источник
0

Если вы запускаете из Xcode, вы увидите ошибку, такую ​​как:

/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820-A146- 
 A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter: code signature 
invalid for '/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820- 
A146-A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter'

Решение предоставлено Jmagman на Github

jmagman перешел в Apple (FB7562472) и сообщит всем, если они что-нибудь услышат. больше деталей на github

parikhparth23
источник
0

Я столкнулся с этой проблемой, когда пытался выполнить сборку на моем реальном iOS-устройстве (но в симуляторе это работало нормально). Я потратил не менее 10 часов, пытаясь исправить эту ошибку. Перепробовал все на всех форумах, ничего не получалось. Но это то, что, наконец, сработало для меня!

  • Обновление с iOS 13.3.1 до iOS 13.4.1

Я не мог себе этого представить, но это правда, что iOS 13.3.1 ломает подпись третьих лиц, если у вас нет платной учетной записи разработчика!

Обмен
источник
Вам просто нужно обновить iOS-устройство до 13.4.x. После обновления я могу запустить пример проекта без каких-либо других настроек.
Корбан