Xamarin.iOS多个资产目录

Xamarin.iOS多个资产目录,xamarin.ios,xamarin-studio,asset-catalog,Xamarin.ios,Xamarin Studio,Asset Catalog,通过最新的Xamarin Studio(4.0.13),我尝试在我的应用程序中使用资产目录。该应用程序有两个不同的应用程序图标集:一个用于所有测试(test.plist)和暂存(staging.plist)版本,另一个用于所有预生产(PreProduction.plist)和生产(production.plist)版本。测试包不包含应用程序图标,因为我们希望QA清楚这与生产构建不同 我已经开始执行预构建plistcp步骤(不理想;Xamarin Studio应该支持有条件地包含基于构建配置的文件

通过最新的Xamarin Studio(4.0.13),我尝试在我的应用程序中使用资产目录。该应用程序有两个不同的应用程序图标集:一个用于所有测试(test.plist)和暂存(staging.plist)版本,另一个用于所有预生产(PreProduction.plist)和生产(production.plist)版本。测试包不包含应用程序图标,因为我们希望QA清楚这与生产构建不同

我已经开始执行预构建plist
cp
步骤(不理想;Xamarin Studio应该支持有条件地包含基于构建配置的文件)。是否有一种方法可以有条件地捆绑(生成操作
ImageAsset
)特定于我的生成配置的
.appiconset
.launchimage
?我已经指定了相关的
XSAppIconAssets
XSLaunchImageAssets
,但是由于它们都被标记为
imageassets
,所以它们都会被复制到根文件夹中(不幸的是)复制到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
    目录?这不起作用,未定义将订单图标集复制到输出文件夹的顺序


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

更多有助于他人的信息:

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

资产目录的工作方式如下:

  • 通常,目录图像以
    catalognameditors.ext
    (例如
    LaunchImages@2x.png
    • 对于启动映像,目录名称分配给
      Info.plist
      中的
      UILaunchImages
      键,操作系统透明地处理这些映像的查找
    • 对于应用程序图标,图标重命名为
      CatalognameDimensions.ext
      ,包括
      57x57
      (以前只是
      Icon.png
      /
      Icon@2x.png
      ),这些名称被分配到
      Info.plist
作为上述重命名的结果,您需要指定目录名称,而不是前面提到的“资产名称”。在我的例子中,我对突然没有出现在应用程序中的启动图像感到困惑(我的应用程序从启动屏幕移动到启动图像上的加载微调器)。解决方案是将代码更改为请求
UIImage.FromBundle(“LaunchImages”)
,而不是
“Default”
。请注意,对于iPhone 5,您当前需要请求
“LaunchImages-568h”
以获得正确的图像