xcarchive искажен из-за отсутствия Info.plist

У меня есть два проекта, которые я строю на основе одного и того же сценария Rake, который внутренне использует сборку XCode. Строим это с xcodebuild -archivePath (Архив успешно), затем я упаковываю приложение с xcodebuild -exportArchive, Проблема в том, что первый проект успешно завершает все этапы, а второй - xcodebuild -exportArchive так как xcarchive неправильно сформирован Я сравнил эти два архива и порок развития вызван отсутствием Info.plist внутри архива. Когда я готовил вручную такое Info.plist и положить его в xcarchiveТогда я смог без проблем упаковать приложение.

Любые подсказки, почему сборка XCode не дает Info.plist внутри xcarchive файл?

6 ответов

Комментарий @diidu к этим вопросам был решением моей проблемы, которое, я считаю, было таким же, как у @Fishman's. Добавление CONFIGURATION_BUILD_DIR (и исключение использования SYMROOT) из моих сценариев сборки привело к тому, что Info.plist был записан в архив, а затем экспорт завершился успешно.

В моем случае проблема была вызвана аргументом SYMROOT=.... Изменение моего кода для использования -derivedDataPath=... вместо этого решило проблему.

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

Итак, первое, что я рекомендую, — это попытаться вернуться к последней архивируемой сборке и посмотреть, работает ли она. Если, как и я, это больше не работает, значит, у вас проблема с кешированием, которая, надеюсь, будет решена следующим образом:

      pod deintegrate
rm -rf Pods
rm -rf Podfile.lock
rm -rf build
pod cache clean --all
pod install

Надеюсь, это сэкономит кому-то еще около 14 часов.

В моем случае я включил через SPM XCFramework, в который были включены файлы dSym/BCSymbolmap.

Это привело к отсутствию Info.plist в сложном проекте, где этого не было в более простом, и только при использовании профилей подготовки для App Store, а не профилей предприятия. Это также происходило при простом запуске архива в Xcode, после завершения Организатор не открывался, потому что в сгенерированном .xcarchive отсутствовал файл Info.plist в корне.

При изменении SPM был получен XCFramework (поставщик изменил его и выпустил новую версию), чтобы включить только двоичные файлы фреймворка, и никакая информация об отладке не приводила к тому, что Архив снова работал правильно.

Это было с Xcode 12.4, есть некоторые причины думать, что Xcode 12.5 (или, в конечном итоге, Xcode 13) может работать лучше, хотя я не смог проверить в этом случае.

Обратите внимание, что это произошло даже после добавления исправления для удаления дубликата Framework, включенного в процессе архивирования в каталог подключаемых модулей приложения, способом, предложенным в примечаниях к выпуску 12.4.

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

Проект действительно строился нормально до тех пор, пока подмодуль фреймворка не обновился для использования XCFramework вместо простого фреймворка. Вникнув в эту проблему, я наконец нашел проблему: настройки сборки и фреймворка !

Если вы установите

BUILD_LIBRARY_FOR_DISTRIBUTION = ДА
SKIP_INSTALL = НЕТ

для построения фреймворка задача архивирования приложения сгенерирует плохой XCArchive, оставив его Info.plist без записи ApplicationProperties . Вы должны убедиться, по крайней мере, что нет BUILD_LIBRARY_FOR_DISTRIBUTION свойства сборки установлены на YES, и наверное нет SKIP_INSTALL установлены на NO.

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

Другие вопросы по тегам