Мы пытаемся загрузить новую сборку для нашего уже существующего приложения в магазин приложений со сценарием сборки для встраивания фреймворка (который просто копирует из каталога сборки в MyApp.app/Frameworks). Все строится и работает нормально на моей локальной машине. Но получаю эту ошибку при загрузке в магазин приложений.
ITMS-90432: Недопустимая поддержка Swift — файл MyApp.app/Frameworks/Framework1.framework, MyApp.app/Frameworks/Framework2.framework не имеет правильного тип файла для этого местоположения. Убедитесь, что вы используете правильный файл, перестройте свое приложение, используя текущую общедоступную (GM) версию Xcode, и отправьте его повторно.
Мы копируем в правильный каталог, но при загрузке по-прежнему получаем указанную выше ошибку.
Мы нашли похожую проблему здесь. Но там было очевидно, что файл info.plist находится не в том месте. Но в нашем случае это в правильном месте.
Прикрепляем используемый нами скрипт. Это мы добавляем в скрипт запуска на этапе сборки.
frameworks_used_in_extensions=("Framework1" "Framework2")
# Loop over the array
for MODULE in "${frameworks_used_in_extensions[@]}"
do
export LIBRARY_SEARCH_PATHS = "${LIBRARY_SEARCH_PATHS}":"${SDKROOT}/${MODULE}.framework/"
cp -Rv "${BUILT_PRODUCTS_DIR}/${MODULE}.framework" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Frameworks/"
CODE_SIGN_IDENTITY_FOR_ITEMS = "${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then
CODE_SIGN_IDENTITY_FOR_ITEMS = "${CODE_SIGN_IDENTITY}"
fi
codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Frameworks/${MODULE}.framework/${MODULE}"
done
@PtitXav Я только что поделился сценарием выше. Предложите мне какие-либо выводы.
Это может создать alias
/shortcut
встроенных фреймворков. Следовательно, они не являются правильными типами файлов под MyApp.app/Frameworks/
используйте следующее, чтобы сделать правильную копию фреймворков
cp -r pathToSource.framework pathToDestination.framework
Кажется, вы поместили 2 имени файла в поле, которое должно содержать только одно