Default.png中的动态版本编号

时间:2011-12-09 03:56:20

标签: iphone objective-c numbers version photoshop

我有一个Default.png,其中包含一个版本号。每次我更新我的应用程序时,我都必须在lite和完整版本的default.png和default@2x.png中更改它。麻烦,不是吗?

我很确定我一直在以错误的方式解决这个问题。我该怎么做呢? (我想在发布时显示一个版本号,而不仅仅是nix它。)

2 个答案:

答案 0 :(得分:1)

编译时图像合成

如果您的徽标不需要更改版本号,那么您可以在编译时使用您选择的图形库来重构png。下面的伪代码:

伪码:

UpdateLogo(String logoName, String version)
{
    WidgetImage MyLogo(logoName + ".png");
    MyLogo.DrawText(800, 650, version);
    MyLogo.Write(logoName + "Final.png");
}

UpdateLogo("Logo.png", "Version 1.0.0");

编译该程序并将其作为自定义构建工具保留。然后,无论何时需要构建应用程序,都可以将Logo.png编译为LogoFinal.png。如果您需要使用XCode或其他工具生成图像文件的帮助,我建议您单独从“动态版本控制”中搜索图像处理工具。

理想情况下,您的版本字符串将使用在易于编辑的表中定义的或由构建系统控制的常量。至少它可以帮助您在每次需要构建应用程序时免于打开Photoshop。

用于正在运行的应用程序中的显示

您应该使用字体在徽标顶部绘制版本号。然后,您可以只包含一个基于文本的资源文件,并且可以通过每个构建的自动化工具轻松更新。

来源

答案 1 :(得分:0)

Apple的人机界面指南说Default.png不应该用作启动画面;它应该代表应用程序将显示的所有UI控件,但不包含任何可本地化的文本或内容。 (想想iPod和联系人等内置应用程序的行为方式。)

如果你是为客户做这件事并且他们要求它,你总是可以使用“但是应用程序商店可能会因违反他们的条款而拒绝它!”参数。

当然,如果您没有提交到商店或者您不在乎,这不适用。 :)

上面发布的人员的技术插件:确保在pngcrush执行之前运行的任何png合成都会在构建过程中运行,因此您不会使用脚本替换优化的图像 - 生成(并且可能未经优化)。如果你在pngcrush运行之后尝试这样做(它没有显示),你也可能会遇到奇怪的问题。