8

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

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

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

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

4

1 回答 1

2

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

更多可能对其他人有所帮助的信息:

在执行预构建 plist 复制步骤之后,您不能依赖XSAppIconAssets并被检查。XSLaunchImageAssetsXamarin Studio 似乎使用生成过程开始Info.plist时存在的值。

资产目录在后台以以下方式工作:

  • 通常,目录图像被复制到.app表单中CatalognameModifiers.ext(例如LaunchImages@2x.png
    • 对于 Launch Images,目录名称被分配给UILaunchImageskey in Info.plist,并且操作系统透明地处理这些查找
    • 对于应用程序图标,图标被重命名为CatalognameDimensions.ext,包括57x57(以前只是Icon.png/ Icon@2x.png),这些名称被分配给数组中的CFBundleIconsCFBundleIcons~ipadInfo.plist

由于上述重命名,您需要指定目录名称,而不是此处提到的“资产名称” 。就我而言,我对启动图像突然没有出现在应用程序中感到困惑(我的应用程序从启动屏幕移动到启动图像上的加载微调器)。解决方案是将代码更改为 requestUIImage.FromBundle("LaunchImages")而不是"Default". 请注意,对于 iPhone 5,您当前需要请求"LaunchImages-568h"获取正确的图像。

于 2013-10-25T05:22:44.277 回答