В Xamarin.несколько каталогов активов iOS

С новейшей Xamarin Studio (4.0.13) я пытаюсь использовать каталоги активов в своем приложении. Приложение два различные наборы значков приложений: один для всех тестов (Test.plist) и постановка (постановка.plist) строит, и одно для всего pre-production (PreProduction.plist) и производство (производство.plist в) строит. Тестовый пакет не содержит значков приложений, так как мы хотим, чтобы QA было ясно, что это не то же самое, что Производственная сборка.

Я уже начал делать предварительную сборку plist cp шаг (не идеально; Xamarin Studio должна поддерживать условно включая файлы на основе конфигурации сборки). Есть ли способ условно связать (build action ImageAsset) the .appiconset и .launchimage конкретно в моей конфигурации сборки? Я указал соответствующее XSAppIconAssets и XSLaunchImageAssets, но так как они все помечены ImageAsset Они все равно копируются и (к сожалению) копируются в корневую папку, где Springboard может их найти и отобразить.

есть ли способ обойти это без:

  • добавление еще более предварительной сборки cpING для связывания правильных наборов значков в один набор, который является единственным отмеченным ImageAsset:

    cp iPhone/buildPlists/Staging-Info.plist Info.plist;
    cp -r Resources/Images.xcassets/TestAppIcons.appiconset/*
          Resources/Images.xcassets/AppIcons.appiconset;
    cp -r Resources/Images.xcassets/TestLaunchImages.launchimage/*
          Resources/Images.xcassets/LaunchImages.launchimage
    
  • добавление пустых файлов изображений в TestAppIcons.appiconset каталог? это не работает, наборы значков заказа копируются в выходную папку undefined

1 ответов


я использовал выше cp скрипт, который, по существу, решена моя проблема.

дополнительная информация, которая может помочь другим:

вы не можете положиться на XSAppIconAssets и XSLaunchImageAssets проверяется после выполнения шага копирования plist перед сборкой. Xamarin Studio, похоже, использует значения, присутствующие в Info.plist на начало процесса сборки.

каталоги активами работают следующим образом: под капотом:

  • В общем, изображения каталога копируются в .app в форме CatalognameModifiers.ext (например,LaunchImages@2x.png)
    • для изображений запуска имя каталога присваивается UILaunchImages ключ в Info.plist, и ОС обрабатывает поиск этих прозрачно
    • для значков приложений значки переименовываются в CatalognameDimensions.ext, включая 57x57 (которые ранее были просто Icon.png/Icon@2x.png), и эти имена назначаются массивам под CFBundleIcons и CFBundleIcons~ipad ключи Info.plist

в результате вышеуказанного переименования вам необходимо указать имя каталога, а не "имя актива", как упоминалось здесь. В моем случае я был озадачен тем, что изображения запуска внезапно не появляются в приложении (мое приложение перемещается с экрана-заставки на загрузочный счетчик поверх изображения-заставки). Решение состояло в изменении кода на request UIImage.FromBundle("LaunchImages"), а не "Default". Обратите внимание, что для iPhone 5 Вам необходимо запросить "LaunchImages-568h" чтобы получить правильное изображение.