В 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 может их найти и отобразить.
есть ли способ обойти это без:
-
добавление еще более предварительной сборки
cp
ING для связывания правильных наборов значков в один набор, который является единственным отмеченным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
добавление пустых файлов изображений вэто не работает, наборы значков заказа копируются в выходную папку undefinedTestAppIcons.appiconset
каталог?
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"
чтобы получить правильное изображение.