[IOS]在一个工程管理多个应用

[IOS]在一个工程管理多个应用


Demo:http://download.csdn.net/detail/u012881779/9166527

本文的产生是因产品经理提出的特殊需求:

一个针对多所学校的应用,对不同学校需要分别使用一套不同的“icon”和“启动图”打包并上传到App Store,同时因为接口需要对不同学校区别处理,故在这个应用部分代码中需要分别处理。本文便是为了在同一个工程中,不使用copy整个项目之类的方法,仅使用这一套代码管理多个不同的应用,便于后期代码管理。


1.新建一个项目并对info.plist进行设置

添加一个字段JudgeMark并设置为“1”(代码中对不同应用分别处理时需要),设置Bundle identifier为“com.gamin.DMManageMultipleApp”(在同一个设备上运行多个应用时避免覆盖安装),设置Bundle name为“第一个应用”



2.进入TARGETS选择DMManageMultipleApp点击右键,选择Duplicate,进入下一级后选择Duplicate Only(ipad版工程这里选择Duplicate and Transition to iPad)。




3.对新copy出来的TARGETS和info.plist进行重命名。



4.进入Manage Schemes对项目的Scheme进行重命名,保持和上一步修改的TARGETS名相同。




5.选择新copy的TARGETS进入General选择Choose Info.plist File,并对选择这个info.plist进行部分设置(Bundle identifier,Bundle name,JudgeMark)。







6.进入Assets.xcassets,点击右键选择App Icons & Launch Images,进入下一级后选择New iOS App Icon或New iOS Launch Image,新建icon和launch,并重命名和切片设置。

具体操作可以参考另一笔记





7.选择TARGETS进入General,进入App Icons and Launch Images选择上一步创建的关联不同应用的icon和launch。



8.在代码中对不同应用分别完成部分不同功能。

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *nameLab;
@property (weak, nonatomic) IBOutlet UILabel *markLab;
@property (weak, nonatomic) IBOutlet UILabel *differenceLab;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    //不同应用 可以这里完成不同功能的操作
    NSString *judgeMark = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"JudgeMark"];
    NSString *appName   = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];

    if ([judgeMark isEqualToString:@"1"]) {
        //第一个应用
        _nameLab.text = appName;
        _markLab.text = judgeMark;
        _differenceLab.text = @"DMManageMultipleApp";
        
    }else if([judgeMark isEqualToString:@"2"]){
        //第二个应用
        _nameLab.text = appName;
        _markLab.text = judgeMark;
        _differenceLab.text = @"DMManageMultipleApp-two";

    }else if([judgeMark isEqualToString:@"3"]){
        //第三个应用
        _nameLab.text = appName;
        _markLab.text = judgeMark;
        _differenceLab.text = @"DMManageMultipleApp-three";
        
    }
}
 


选择不同应用运行结果:



相关文章
相关标签/搜索