Xamarin.iOS 多个资源目录

8

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

我已经开始了一个Pre-Build plist cp 步骤(不理想;Xamarin Studio应支持根据构建配置有条件地包含文件)。有没有一种方法可以有条件地捆绑(build action ImageAsset.appiconset.launchimage特定于我的构建配置?我已指定相关的XSAppIconAssetsXSLaunchImageAssets,但由于它们都被标记为ImageAsset,它们都会被复制到任何位置,并(不幸地)复制到Springboard可以找到和显示它们的根文件夹中。

是否有任何方法可以避免这种情况,而无需:

  • Adding yet more Pre-Build cping to bundle the correct icon sets into one set which is the only one marked 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
    
  • Adding blank image files to the TestAppIcons.appiconset catalog? This doesn't work, the order icon sets are copied to the output folder is undefined

1个回答

2
我使用了上面的cp脚本,这基本上解决了我的问题。
更多信息可能有助于他人:
在进行预构建plist复制步骤之后,您不能依赖于XSAppIconAssetsXSLaunchImageAssets被检查。Xamarin Studio似乎在构建过程开始时使用Info.plist中存在的值。
资产目录在幕后的工作方式如下:
通常情况下,目录中的图像会以CatalognameModifiers.ext(例如:LaunchImages@2x.png)的形式复制到.app中。
  • 对于启动图像,将目录名称分配给Info.plist中的UILaunchImages键,操作系统会自动查找这些图像。
  • 对于应用程序图标,图标被重命名为CatalognameDimensions.ext,包括之前仅为Icon.png/Icon@2x.png57x57,并将这些名称分配到Info.plistCFBundleIconsCFBundleIcons~ipad键的数组中。
由于上述更名的结果,您需要指定目录名称,而不是如此处所述的“资产名称”。在我的情况下,我对启动图像突然在应用程序中未显示感到困惑(我的应用程序从闪屏移动到加载旋转器在闪屏图像上)。解决方案是将代码更改为请求UIImage.FromBundle("LaunchImages"),而不是"Default"。请注意,对于iPhone 5,您目前需要请求"LaunchImages-568h"以获取正确的图像。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接