iOS 多Target中对infoPlist的本地化处理

一、问题描述

公司有两个类似的项目,暂称为A和B,B是在A的基础上进行功能裁剪生成的,原来的做法一般是在A做完后,再重新基于A拉分支,重新修改再出版本。最近,在做工程的合一,想要把两个的工作合到一条分支上,自然就想到了XCode中多target的方法,其他都很顺利,网上也有很多教程。

但由于应用是支持多语言的,且不同语言下要显示不同的名称,在infoplist 的本地化方面遇到了一些问题,导致应用名不能根据语言来显示。最终通过各种查找,在stack overflow上找到了解决方法,来纪录一下。

二、解决方法

假设这里,你已经配置好了其他多Target相关除了infoPlist的其他配置,在Duplicate一个target后,XCode会给你自动生成一个infoplist文件,如下图


image.png

如果工程中不涉及到infoplist的本地化,可以直接在这个infoplist中修改相应的配置即可,XCode中已为你指定该infoPlist。


image.png

如果涉及到本地化的话,就需要删除此文件,重新进行创建和配置,步骤如下:

Step 1:

添加一个新的infoplist.strings文件到工程中,这里的Lock.Free文件夹,是新创建的用来放与主线工程不一致的资源文件的文件夹。Target只选择Lock.Free这个target


image.png
image.png
Step 2:

勾选多语言,对该infoPlist文件进行本地化


image.png
image.png
Step 3:

在Build Settings 中配置路径


image.png
运行后效果:

英文


image.png

中文:


image.png
参考文章:

iOS 设置APP的名称
Localized project with several targets with localized app names
iOS中多Target的实现

你可能感兴趣的:(iOS 多Target中对infoPlist的本地化处理)