Xamarin.iOS多个资产目录

时间:2013-10-23 07:06:20

标签: xamarin.ios xamarin-studio asset-catalog

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

我已经开始执行Pre-Build plist cp步骤(不理想; Xamarin Studio应该有条件地支持包含基于构建配置的文件)。有没有办法有条件地捆绑(构建操作ImageAsset)特定于我的构建配置的.appiconset.launchimage?我已经指定了相关的XSAppIconAssetsXSLaunchImageAssets,但由于它们都标记为ImageAsset,因此无论如何它们都会被复制,并且(不幸的是)被复制到Springboard可以找到的根文件夹中并显示它们。

有没有办法解决这个问题:

  • 添加更多预构建cp以将正确的图标集捆绑到一个集合中,这是唯一标记为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目录? 这不起作用,订单图标集被复制到输出文件夹未定义

1 个答案:

答案 0 :(得分:2)

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

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

在执行Pre-Build plist复制步骤后,您不能依赖XSAppIconAssetsXSLaunchImageAssets进行检查。 Xamarin Studio似乎在构建过程的开头中使用Info.plist中的值。

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

  • 一般情况下,目录图片会以.app的形式复制到CatalognameModifiers.ext(例如LaunchImages@2x.png
    • 对于启动映像,目录名称将分配给UILaunchImages中的Info.plist键,操作系统将以透明方式处理这些内容
    • 对于应用程序图标,图标重命名为CatalognameDimensions.ext,包括57x57(之前只是Icon.png / Icon@2x.png),这些名称已分配给数组在CFBundleIcons
    • 中的CFBundleIcons~ipadInfo.plist键下

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