一、问题描述
公司有两个类似的项目,暂称为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的实现
网友评论