2013-10-23 32 views
8

随着最新的Xamarin工作室(4.0.13)我试图在我的应用程序中使用资产目录。该应用程序有两个不同的应用程序图标集:一个用于所有测试(Test.plist)和分段(Staging.plist)构建,一个用于所有预生产(PreProduction.plist)和生产(Production.plist)生成。测试包中不包含任何应用程序图标,因为我们希望QA清楚,这与生产版本不一样。Xamarin.iOS多个资产目录

我已经开始做预构建plist cp步骤(不理想; Xamarin Studio应该有条件地支持包含基于构建配置的文件)。是否有条件捆绑(构建动作ImageAsset.appiconset.launchimage特定于我的构建配置?我已经指定了相关的XSAppIconAssetsXSLaunchImageAssets,但由于它们都标记为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 
    
  • 将空白图像文件添加到TestAppIcons.appiconset目录?这不起作用,订单图标集复制到输出文件夹是不确定

回答

2

我使用上述cp脚本,基本上已经解决了我的问题。当你做一个预建的plist拷贝步骤中被检查

你不能依靠XSAppIconAssetsXSLaunchImageAssets

更多信息可以帮助别人。 Xamarin Studio似乎使用Info.plist,开始构建过程中的值。

资产目录工作在引擎盖下的方式如下:

  • 通常,目录图像被复制到在形式CatalognameModifiers.ext.app(例如[email protected]
    • 对于启动图像,目录名被分配给UILaunchImagesInfo.plist,和OS处理的这些透明
    • 对于应用图标的查找时,图标被重命名为CatalognameDimensions.ext,包括57x57(其先前被简单地Icon.png/[email protected]),并且这些名称以Info.plist
CFBundleIconsCFBundleIcons~ipad键分配给阵列

由于上述重命名,您需要指定产品目录名称,而不是所提及的here中的“资产名称”。在我的情况下,我对突然没有出现在应用程序中的启动图像感到困惑(我的应用程序从启动画面移动到加载闪烁图像上)。解决方法是更改​​代码以请求UIImage.FromBundle("LaunchImages"),而不是"Default"。请注意,对于iPhone 5,您目前需要请求"LaunchImages-568h"以获得正确的图像。