ios – 如何使用不同的皮肤/品牌来构建不同版本的应用程序?

前端之家收集整理的这篇文章主要介绍了ios – 如何使用不同的皮肤/品牌来构建不同版本的应用程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创建一个通用的应用程序,它将为不同的客户提供不同的构建.该应用程序每个客户的相同程度为99.5%,每个客户的区别在于客户自己的特定图像和文字和应用程序图标.

显然这可以使用以下标志来完成:

#if defined (CUSTOMER_A)
    NSString* text = @"Text for customer A";
    UIImage *image = [UIImage imageNamed:@"customerAImage"];
#elseif defined (CUSTOMER_B)
    NSString* text = @"Text for customer B";
    UIImage *image = [UIImage imageNamed:@"customerBImage"];

但显然我想避免这种情况,只是有:

NSString* text = @"Text";
   UIImage *image = [UIImage imageNamed:@"image"];

(文本将是可本地化的,因此在最终版本中将使用NSLocalizedString).

我想知道一个可能的方法是将项目放入工作区以及许多静态库,每个静态库都包含每个客户的特定文本和图像,然后使用不同的方案来创建不同的构建.所以方案A将创建一个使用主项目和静态库A构建的目标.

我开始有一个小的概念证明,但是在走得太远之前,我首先要检查这是一个可行和合理的方法,或者如果有更好的选择.如果可行的话可以考虑几个问题:

>如何从主项目中的代码访问静态库中的图像?必须创建一个bundle来访问库的内容,这样做如何?
>根据使用哪种方案,是否可以更改应用程序桌面和市场图标?
>是否可以指定一套不同的分配证书等待每个方案使用?
静态库不能包含本地化的变体吗?

这是为了iOS,所以不可能为此使用一个框架.

感谢任何反馈.

(建筑系统将使用jenkins自动化).

解决方法

您只需要在项目中创建多个目标即可
每个目标的资源文件夹(客户/品牌).
以下是如何完成此操作:

>创建两个新的资源文件
一个. Resources_Customer1
湾Resource_Customer2
>将相应的资源复制到相应的文件夹中
>选择项目 – >目标
>复制目标
>在[复制构建资源]中自定义资源名称,以便它指向适当的
客户/品牌
>根据所选的目标测试和验证适当的目标运行.

希望这可以帮助!

猜你在找的iOS相关文章