如何用同一个工程创建两个不同版本的应用
来源:互联网 发布:淘宝物流投诉怎么撤销 编辑:程序博客网 时间:2024/04/29 08:08
如果同一个应用, 需要做一个带广告Lite版本, 一个不带广告的Pro版本. 那么问题来了, 该如何优雅的去实现呢?
一般来说有两种实现方法:
一个把当前工程拷贝然后再修改, 这样做会导致后期维护成本过高, 每次修改都要同时改两个工程, 到后期修改简直提心掉胆, 不过操作傻瓜式.
另外一个种就是在一个Project里面创建两个Target, 然后通过判断Target来修改代码, 这样都是基于同一套代码做修改, 只是部分不相同的地方通过Target来添加不同代码, 后期修改维护成本低, 推荐大家使用这种方式.
• 不想看教程的童鞋, 点击这里可以下载我已经完成好的代码.
• 创建两个Target:
1.首先先选中Target一个已经存在的版本, 右键 Duplicate
2.然后在弹出来的选择框选择 Duplicate Only
3.创建完之后你的新Target应该是和我的一样, 接下来我们就要修改Target, Scheme, Info-plist, 如图这样修改:
4.修改完了之后Target, Scheme, plist的名字之后, 你需要在新的Target添加对应的plist文件, 修改CFBundleDisplayName
就可以修改应用的名字了.
5.还要记得修改一下Product Name
不然你的Bundle Identifier的后缀名有copy
和你的Target名字不一样, 你还需要在Bundle Setting
做一下修改.
• 开始为两个不同的应用添加不同的AppIcon, LaunchImage
- 在这个选择使用
Images.xcassets
里面设置AppIcon
和LaunchImage
, 注意这里一个是AppIcon
,另一个是AppIcon-2
, 以后编译Target的时候他就会跟随这里的设置去拿了开机图和Icon
2.进入Images.xcassets
看下图片是不是都是勾选了两个Target, 保持和我下图一样的勾选, 如果没有勾选的话, 你在编译的不同Target的时候会获取不到资源.
3.选择不同Target进行编译, 你的运行结果应该和我的截图一样, 有着不同的AppName
和AppIcon
,还有不同的LaunchImage
,但是代码是共用, 到这里你已经成功了一半了, 接下来你肯定是想知道如何在代码里面区别不同Target, 然后给它们添加其他的特性.
• 在代码里面利用宏定义来区分不同的Traget
1.在Bundle Setting
里面设置一下Proprecessor Macros
添加一份KFREE
KPRO
的参数来区分到底是那个Traget. 在代码里面为需要用到这个宏去判断代码块.
2.在代码里面添加Proprecessor Macros
里面宏定义, 你就会发现编译之前Xcode就会智能的选择不同代码. 这样你就共用一个项目管理两个不同版本的应用了, 大部分的代码都复用, 维护管理非常轻松.
总结:
苹果每年都会推出新的技术, 都是为了减少开发成本和更好的设计, 作为开发者的开发模式应当和苹果的理念一致. 用最优雅, 简洁的方式去实现功能.
- 如何用同一个工程创建两个不同版本的应用
- 如何用同一个工程创建两个不同版本的应用
- 用同一个工程创建两个不同版本的应用
- 用同一个工程创建两个不同版本的应用
- 用同一个工程创建两个不同版本的应用
- 如何用js判断两个文本框里的日期是否在同一个月里???
- 如何用Apache分发同一个服务器上的多个应用[本人亲自实践]
- 如何用最简单的方法找出两个表中不同的记录
- 如何用git创建和应用patch
- 如何用codeblocks同时运行一个工程里的两个程序
- 如何用vc在不同窗口打开多个工程
- 如何用SVN从github上检出代码的不同版本
- 如何用SVN从github上检出代码的不同版本
- 同一个电脑安装两个版本的JDK
- 如何用MDK从零开始创建STM32F2xx工程(图文教程)
- 如何用MDK从零开始创建STM32F2xx工程(图文教程)
- 如何用adb获得手机里面某个apk的应用信息、版本信息
- 如何用AfxBeginThread安全的创建线程
- 编译链接简介及makefile书写<一>
- 如何获得与Google健身应用相同的步数?
- 设计模式:抽象工厂-abstract factory
- 阿里基础云的网络安全性保障-禁用外网策略
- anddroid制作直播中的礼物的动画
- 如何用同一个工程创建两个不同版本的应用
- python 3.0 网络爬虫 3
- 创建两个线程,一个线程打印aa,一个线程打印bb,必须保证每打印两个aa之后打印一个bb。打印完10个aa和5个bb后退出程序
- Android---工具类Utils(你想不到的完美)
- 二叉树遍历
- Sublime Text 3 Mac 前端代码编写常用快捷键
- 火米互动博客计划
- java和c++执行相同代码(++a)*(++a),结果却不一样
- 中服软件获数千万A轮融资,打造国内顶级PaaS云平台