每个App
项目可以有多个环境,开发环境
、测试环境
、预发布环境
和生产环境
,至少有开发环境
和生产环境
研发同学和测试同学经常需要在环境间切换,产品同学有时候也会心血来潮的看看各种版本,也就是说,有时候需要测试版本,有时候又需要正式版本,我之前的做法就是每次切换url
,然后重新打包,或者重新运行,超麻烦~
那么有没有可能在一个手机直接装多个版本呐?
答案肯定是有滴(否则还码这篇文章干嘛呐~)
个人觉得最好的方案就是 ------环境分离,即不同的环境对应不同的app
每个Target代表一个编译的产品。每个Target,可以有不同的编译源文件和资源文件。那么,实现环境分离的方案,就是分别建立测试环境和生产环境的两个Target。默认的Target作为生产环境的Target,在此基础上复制多一个Target作为测试环境的Target。
一个app
只能有一个唯一标示,iOS
使用的是Bundle Identifier
,Android
使用的是包名,因此,在一个手机上安装多个环境的app
,只需要每个环境的Bundle Identifier
或者包名不同即可,一般做法是在后面添加环境后缀,比如生产环境为com.shenfengfeng.myapp
,那么测试环境就可以为com.shenfengfeng.myapp.alpha
,app
名字会更新,当然也可以手动改,当然也还可以改图标,用来在同一个手机上区分版本
但是这种做法有个不好的地方就是需要,需要针对不同的环境,申请,不同的第三方的appKey
、appSecret
那么是来回注释,还是申请账号,看自己取舍吧~
概述:iOS app
可以通过创建不同环境的Target来实现环境分离,不同Target可以设置不同的bundle id
、名称、图标等。每个target
也对应的plist
文件
1、复制target
,选中后右键,选择Duplicate
2、默认的名字为**** copy
3、修改target
和bundle id
,需要注意的是,在修改target
的名字后,需要切换到Xcode
的其他地方(比如其他target
)后再切回来,然后display name
会自动适配
4、项目结构里面会多一个默认target
名字的***.plist
文件
5、 右键show in finder
,将这个plist
文件改名,并且移到项目的原本的plist
文件的同级目录,然后重新添加到项目中,注意选择的target
6、看下图
7、因为移动了新的target
的plist
文件,所需要重新关联到新的plist
文件,关联后随意切换后会刷新
8、按着键盘option
,点击Xcode
运行按钮(左上方),然后点击Manage Schemes
9、重命名新创建schemes
10、如图
11、右键新建AppIcon
12、选择新的target
对应的AppIcon
13、关键步骤
设置了不同的target
后,代码上可以根据不同的target
来做不同的处理,就需要知道,当前在编译的是哪个target
这可以通过,预编译宏来区分,比如在runtime alpha
的target
的Build Settings
中,在Preprocessor Macros
中添加FF_ALPHA
(也可以给target
runtime
设置FF_ALPHA=0
,给runtime alpha
设置FF_ALPHA=1
)
14、代码中就可以如下判断,依据实际情况
#ifdef FF_ALPHA #define FF_URL @"****" #elif ... #define FF_URL @"****" #else #define FF_URL @"****" #endif
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款