创建一个新target
快捷键“⌘ + D
”:创建一份新的target:(Duplicate:复制)
会配套产生相应的“info.plist”文件
配置“info.plist”文件
修改“info.plist”文件名称:
修改文件名后,在“Build Settings”的“Packaging”项中修改“Info.plist File”选项:改为对应的“info.plist”文件
为相应的TARGET 选择相应的“info.plist”文件:
修改各项“scheme”的名称:
修改各个TARGET的“bundle id”
注意⚠️:如果不修改各个TARGET的“bundle id”为不同的值!会出现“使用其他的TARGET运行,会覆盖之前已经运行(安装)过的APP”!
代码里对不同的项目,进行不同的处理(背景色、图片 不同)
“PCH”文件:
#define DisplayName ([NSBundle mainBundle].infoDictionary[@"CFBundleDisplayName"]) //Bundle Name #define IS_FirstOne ([DisplayName isEqualToString:@"FirstOne"]) //第一个项目 #define IS_targetOne ([DisplayName isEqualToString:@"targetOne"]) //第二个项目 #define IS_twoTwo ([DisplayName isEqualToString:@"twoTwo"]) //第三个项目
UIImageView * imgV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_BOUNDS.width/2.f, SCREEN_BOUNDS.width/2.f)]; imgV.center = self.view.center; [self.view addSubview:imgV]; if (IS_FirstOne) { //第一个项目 self.view.backgroundColor = [UIColor redColor]; imgV.image = [UIImage imageNamed:@"1"]; } else if (IS_targetOne) { //第二个项目 self.view.backgroundColor = [UIColor cyanColor]; imgV.image = [UIImage imageNamed:@"2"]; } else if (IS_twoTwo) { //第三个项目 self.view.backgroundColor = [UIColor yellowColor]; imgV.image = [UIImage imageNamed:@"3"]; } else { //其他的项目 self.view.backgroundColor = [UIColor blueColor]; imgV.image = [UIImage imageNamed:@""]; }
图片素材:
效果:
添加新的icon(启动图同理)
为新的APP(新TARGET)添加icon
都选择好“App Icon”,之后的效果:
不同TARGET的多语言处理
创建“Strings File”文件:
######“File.strings”文件: (targetOne、twoTwo) (英语、简体中文、德语、法语)
“File.strings”对应的TARGET: targetOne、twoTwo “File.strings”对应的语言: English、Chinese(简)、German、French
“NewFile.strings”文件: (AppManyTargets) (英语、简体中文、日语)
“NewFile.strings”对应的TARGET: AppManyTargets “NewFile.strings”对应的语言: English、Chinese(简)、Japanese
“PCH”文件:根据“DisplayName”选择相应的“.strings”文件
#define INTERNATIONAL //宏定义国际化字符
#ifdef INTERNATIONAL
#define INTERSTR(a) (IS_FirstOne ? NSLocalizedStringFromTable(a,@"NewFile", nil):NSLocalizedStringFromTable(a, @"File", nil))
//#define INTERSTR(a) (IS_FirstOne ? NSLocalizedStringFromTable(a,@"NewFile", nil):NSLocalizedString(a, nil))
//NSLocalizedString(a, nil)对应“Localized.string”
#else
#define INTERSTR(a) (a)
#endif
UILabel * lb = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 100.f)];
lb.center = CGPointMake(imgV.center.x, CGRectGetMaxY(imgV.frame) + 100.f/2.f);
lb.font = [UIFont systemFontOfSize:30.f];
lb.adjustsFontSizeToFitWidth = YES;
lb.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:lb];
lb.text = INTERSTR(@"我最帅");
效果:
(2018.08.01)
goyohol's essay