zoukankan      html  css  js  c++  java
  • 同一个程序里有多个版本的App

    • 在Xcode中添加多个targets进行版本控制,就是同一个app开发多个版本
    • 以Xcode 9.3 为例

    1. 创建

    • 点击左侧工程项目文件,选择TARGETS 下的项目右击选择 Duplicate。
    • 看到这个弹框:(标准iPhone程序选Duplicate Only,如果需要iPad就选Duplicate and Transition to iPad)
    • 就会看到TARGETS 下会出现一个 testCode copy

    2.改名字

    • (1)点击xcode左上角Run、Stop右边的工程名称,下拉框中选择 Manage Schemes,在弹出框中,点击A copy那行,点击一次、再点击一次,就可以修改A copy为你想要的名字了,比如ALite;
    • (2)修改xcode左下方Products下的TestCode copy.app名称
    • 选择新加的项目名,选”Build Settings” 搜索 “Packaging”下的”private Headers Folder Path”,修改testCode Copy/PrivateHeaders为 “TwoTestCode.app/PrivateHeaders”;
    • (3)把TARGETS 下的名字也改一改

    3.修改Bundle Identifier和选择不同的证书,让app区分开来

    • Xcode 9.3已经把 .plist 生成了(多人性化啊)
    • 接着直接创建个新的文件夹放 TwoTestCode的资料。(建议在工程文件夹里面创建再拖拽进来,记得选的是TwoTestCode)
    • 之后就是这样

    4.修改程序的名字和国际化

    • 看这个帖子加国际化--- app多target 国际化语言设置
    • target的程序名称都会不同,复制zh-Hans.lproj和en.lproj下的InfoPlist.strings文件到先前创建的TwoTestCode文件,然后修改InfoPlist.strings的内容:"CFBundleDisplayName"="TwoTestCode";
    • 注意选择类型来改:

    5.设立全局的宏定义来区分

    • 选择TARGETS下的testCode->Build Setting,搜索:Preprocessor Macros,设置Debug和Release里的预编译宏内容,比如:TARGET_VERSION_LITE=1
    • (注意=前后不能右空格,有空格会编译不过)
    • 最后:程序中对不同版本这样判断:
    - (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section {
    	
    	#if TARGET_VERSION_LITE ==1
    		return6;
    	#elif TARGET_VERSION_LITE ==2
    		return5;
    	#endif
    		return5;
    }
    
  • 相关阅读:
    lnmp 优化
    linux-lnmp 搭建报错
    nfs 配置
    全网备份脚本rsync
    .Net面试题二
    软件设计模式
    .Net面试题一
    asp.net运行机制
    NHiberante的优缺点
    什么是架构、框架、模式和平台
  • 原文地址:https://www.cnblogs.com/CH520/p/9588992.html
Copyright © 2011-2022 走看看