Xamarin.iOS多个资产目录

使用最新的Xamarin Studio(4.0.13),我正在尝试在我的应用程序中使用资产目录.该应用程序有两个不同的应用程序图标集:一个用于所有测试(Test.plist)和登台(Staging.plist)构建,一个用于所有预生产(PreProduction.plist)和生产(Production.plist)构建.测试包中包含NO app图标,因为我们希望QA清晰,这与生产版本不同.

我已经开始做一个Pre-Build plist cp步骤(不理想; Xamarin Studio应该有条件地支持包含基于build config文件).有没有办法有条件地捆绑(构建动作ImageAsset)特定于我的构建配置的.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目录中?这不起作用,将订单图标集复制到输出文件夹是未定义的

解决方法

我已经使用了上面的cp脚本,它基本上解决了我的问题.

更多可能有助于他人的信息:

在执行预构建plist复制步骤后,您不能依赖XSAppIconAssets和XSLaunchImageAssets. Xamarin Studio似乎在构建过程开始时使用Info.plist中存在的值.

资产目录以下列方式工作:

>通常,目录图像以CatalognameModifiers.ext格式复制到.app中(例如LaunchImages@2x.png)

>对于启动映像,目录名称分配给Info.plist中的UILaunchImages键,操作系统处理这些透明的查找
>对于应用程序图标,图标被重命名为CatalognameDimensions.ext,包括57×57(以前只是Icon.png/Icon@2x.png),这些名称分配给Info中的CFBundleIcons和CFBundleIcons~ipad键下的数组的.plist

由于上面的重命名,你需要指定目录名称,而不是像here所述的’资产名称’.在我的情况下,我很惊讶发布图像突然没有出现在应用程序中(我的应用程序从启动画面移动在飞溅图像上加载微调器).解决方案是更改代码以请求UIImage.FromBundle(“LaunchImages”),而不是“认”.请注意,对于iPhone 5,您目前需要请求“LaunchImages-568h”才能获得正确的图像.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...