Подтвердить что ты не робот

Как отлаживать ошибку "Недействительный пакет", которая возникает только после отправки в магазин приложений

В моем приложении много фреймворков. Приложение отлично работает в adhoc/enterprise release. Только если я отправлю в хранилище приложений для тестирования testflight, я получаю это сообщение об ошибке от apple:

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

Мы обнаружили одну или несколько проблем с вашей недавней доставкой для "Имя моего приложения здесь". Чтобы обработать вашу доставку, выполните следующие действия. вопросы должны быть исправлены:

Недействительный пакет. В пути поиска dylib нет одной или нескольких динамических библиотек, на которые ссылается ваше приложение.

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

Привет,

Команда App Store

здесь нет конкретной информации. Как я могу его отладить?

4b9b3361

Ответ 1

Получил ответ от технической поддержки Apple Developer, в которой говорится, что это ошибка на стороне Apple. это предлагаемое обходное решение, ниже которого не работает для меня:

Чтобы диагностировать эту проблему, вы должны экспортировать IPA, который вы отправляете App Store из Xcode. Поскольку IPAs - это zip файлы, вы можете распакуйте его, щелкнув правой кнопкой мыши и сообщив Open With > Archive Утилита. Вы должны найти свой основной исполняемый файл внутри распакованного структуру папок и запустите otool в командной строке, чтобы увидеть библиотеку list: otool -L

Список путей, которые вы получаете, должен соответствовать тому, что вы находите внутри своего IPA. Все ваши библиотеки должны начинаться с @rpath. Просто сравнение всего в этом списке с распакованными папками IPA должен показать, чего не хватает.

Как только вы узнаете, чего не хватает, перейдите к настройке фаз сборки Xcode. Должна быть фаза сборки для файлов Copy или Embed Рамки, содержащие недостающую библиотеку - вы должны просто добавить библиотеки в список. Если вы не видите ни одну из этих фаз сборки, вы можете воссоздать его, добавив новую фазу сборки файлов копий, установив "Назначение в рамки" и добавление библиотеки в список, убедитесь, что установлен флажок Кодовая подпись.

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

Если вы обнаружите, что все фреймворки находятся на этом этапе сборки, пожалуйста, ознакомьтесь с разделом "Встроенные двоичные файлы" ваших целевых приложений Общая страница, и дайте мне знать, если вы видите несколько уровней.. /next к найденному двоичному файлу отсутствует.

Пожалуйста, дайте мне знать, если это сработает для вас!

Ответ 2

Я столкнулся с такой же проблемой при загрузке приложения с поддержкой часов в хранилище приложений.

Я смог решить это с помощью подсказки из первого ответа, используя otool -L для анализа двоичного кода из ipa или xcarchive. Однако проблема была не в моих фреймворках (в @rpath), а в быстрой lib. Я заметил, что libswiftWatchKit.dylib отсутствует в папке frameworks.

Решение, которое сработало для меня, было так же просто, как установить EMBEDDED_CONTENT_CONTAINS_SWIFT=YES в настройках сборки приложения часов (или расширение приложения часов, но не обоих). После этого все необходимые быстрые библиотеки были правильно скопированы на путь просмотра часов в архиве и загрузка в магазин приложений работала правильно.

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

Ответ 3

После добавления пользовательской платформы Swift в мой проект я получил это электронное письмо после загрузки приложения в iTunes connect.

Я получил это письмо из магазина iTunes,

Недопустимый пакет. Одна или несколько динамических библиотек, на которые ссылается ваше приложение, отсутствуют в пути поиска dylib.

Решение этой проблемы простое,

Шаг 1. Убедитесь, что ваша пользовательская структура добавлена в встроенные двоичные файлы на вкладке "Общие" вашей цели. enter image description here

Шаг 2. В настройках сборки

Установите Always Embed Swift Standard Libraries = Yes для своей цели основного проекта.

И установите Always Embed Swift Standard Libraries = No для своей целевой структуры.

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

ссылка

Ответ 4

Перепробовал все вышеперечисленные решения и у меня не получилось.

Я недавно столкнулся с этой проблемой в Xcode 10.1, и все мои фреймворки были указаны правильно (сделал otool -L и все выстроилось).

Похоже, что в процессе проверки Apple произошли некоторые изменения, возможно, это ошибка, возможно, не на стороне Apple, но все мои предыдущие сборки были загружены и проверены нормально - с тех пор я не добавлял никаких новых платформ.

При загрузке двоичного файла в iTunesConnect я вижу следующую ошибку:

Invalid Bundle - одна или несколько динамических библиотек, на которые ссылается ваше приложение отсутствует в пути поиска dylib.

Invalid Bundle - приложение использует Swift, но один из двоичных файлов не может ссылка на него, потому что он не был найден. Проверьте, что приложение входит в комплект правильно встраивать стандартные библиотеки Swift, используя "Always Embed Swift" "Стандартные библиотеки" настройки сборки, и что каждый двоичный файл, который использует Swift имеет правильные пути поиска к встроенному стандарту Swift библиотеки, использующие параметр сборки "Runpath Search Paths".

МОЕ РЕШЕНИЕ:

  • После нескольких дней отладки у меня сработало отключение "Включить битовый код для содержимого iOS" при загрузке архива из органайзера Xcode. Похоже, что эта опция изменяет двоичный файл, который вызвал сбой валидатора.

enter image description here

  • Или вы можете отключить битовый код в настройках сборки

Ответ 5

Моя проблема: У меня была такая же ошибка со встроенными фреймами.

  • Проект приложения имеет проект пользовательской структуры
  • В проекте Custom Framework другой проект Custom Framework

Приложение, созданное для симулятора и устройств без проблем, но не получило тест Apple, возвратив "Недействительный пакет".

Я осмотрел пакет так же, как Taha было сказано Tech Support, и все было и правильно!

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

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

Ответ 6

В моем случае в настройках сборки это было исправлено, когда я добавил следующие параметры сборки для библиотеки:

 DYLIB_INSTALL_NAME_BASE = @rpath

Ключ был предупреждением компоновщика: "У вашей библиотеки есть имя установки, начинающееся с" /", но это не из указанного SDK '

Ответ 7

У меня была та же проблема, из-за того, что одна структура не присутствовала в подпапке Frameworks в комплекте приложения.

Я исправил его, добавив фазу сборки "Копировать поля" и добавив там отсутствующий файл .framework.

Ответ 8

Это сообщение об ошибке также указано в технической заметке Apple TN2435. Встраивание фреймворков в приложение: https://developer.apple.com/library/archive/technotes/tn2435/_index.html

Вы можете найти сообщение об ошибке под заголовком "Missing Framework Bundle" с инструкциями по устранению неполадок.

Ответ 9

Я также получил аналогичное письмо от Apple:

Dear Developer,

Мы обнаружили одну или несколько проблем с недавней доставкой для вашего приложения, "********. Пожалуйста, исправьте следующие проблемы, затем загрузить снова.

ITMS-90562: недействительный пакет - одна или несколько динамических библиотек, которые на которые ссылается ваше приложение, их нет в пути поиска dylib.

Best regards,

Команда App Store

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

enter image description here

Ответ 10

Поэтому я боролся с этим в течение двух дней. Оказалось, что я проверил UITests в архиве для сборки для схемы, которую я архивировал.

После снятия флажка из архива, повторного архивирования его, проверки его (хотя проверка его до того, как он был всегда передан) и "Загрузка в AppStore", я не получил электронное письмо от Apple, информирующее меня о поддержке Invalid Swift. Вместо этого я получил электронное письмо, которое было обработано, и это хорошо!

Ответ 11

Была такая же проблема. Это произошло со мной, потому что одна из моих целей Framework была добавлена к основной цели в "Link Binary With Libraries", но не была добавлена в "Target Dependencies" и "Embedded Binaries"

Ответ 12

У нас была та же проблема, и даже после выполнения всех шагов (см. "Пропущенный пакет Framework"), единственное, что сработало, это отключение битового кода.