如何在你的设备上让同一个App的两个版本共存?

本文介绍如何在同一台iOS设备上安装同一应用的不同版本,并通过不同的AppID和图标进行区分。涉及创建不同的AppID、使用不同图标及构建配置。
你的伟大APP的第一个版本V1已经在App Stroe上架了,同时你的设备上也安装了这个版本。现在你开始开发V1.1版本。如果你只是改变了版本号码而保持以前的编译设置,那么当你在你的设备上安装的时候,问题就出现了:它覆盖了以前的老版本V1.
      在这篇文章中,我将讲解怎样轻松的让你的同一个应用的2个版本共存于同一个设备,同时我也会讲解如何用2个不同的icons来区分他们。

创建2个不同的App ID

更新:如果你需要用到push Notification和icloud,你需要2个不同的App ID.否则你可以用带两个不同bundle ID的通配符工程。感谢@alloy同学的这个小窍门。

当你安装了一个App,为了确定你是要安装一个新App还是更新一个已经安装的App,设备会比较他们的App ID.

所以第一件要做的事情就是去provisioning center 给你应用的开发版本创建另外一个App ID,这样设备就能够让你的应用的2个版本共存了。

如果你在App Store已经上架的应用用的是这个App ID:com.mycompany.myapp,那么我建议你把新创建的ID命名为:com.mycompany.myapp-beta 或者com.mycompany.myapp-dev

同时你要在那里为新的App ID创建一个provisioning profile.

为开发版本创建一个不同的icon

为了在我的设备上区分2个不同的版本,我用了2个不同的icon,beta版本(新版本)在左上角使用了一个黑黄相间的进度条。
如何在你的设备上让同一个App的两个版本共存?

把你的图标命名为:Icon.png, Icon@2x.png, Icon-beta.png, Icon-beta@2x.png
使用不同的构建配置信息
Xcode默认会为你创建2个不同的构建配置:debug和release,我喜欢增加第三个:Appstore.
我是这样使用他们的:
Debug:当我直接用Xcode在我的设备上创建应用
Release:当我把App打包成了一个ipa文件放到我们的空中分发系统(类似testflight但是更简单易用)
Appstore:当我创建提交到AppStore的版本时使用这个配置。

将他们联系起来
用户指定构建设置
现在我们需要设置工程来让它对不同的构件配置使用正确的AppID和icon。

进入工程的Build Settings选项并且滚到最下面,增加一个叫做BUNDLE_IDENTIFIE的用户指定设置(user-defined setting),再增加另外一个命名为APP_ICON_NAME的用户指定设置,参照下面的截图设置每个构建配置: 如何在你的设备上让同一个App的两个版本共存?

现在我们需要告诉Xcode在构建应用的时候使用这些设置
info.plist
打开你的工程的info.plist(在Supporting files文件夹下的叫做MyApp-Info.plist)的文件。
在bundle identifier中用${BUNDLE_IDENTIFIER}来替换你当前的bundle identifier。

同样的在iconfiles下面将2个选项替换成${APP_ICON_NAME}@2x.png 和${APP_ICON_NAME}.png 

${...}语法是于处理器语法:构件开始的第一个阶段预处理器就会遍历所有的文件并且用设置的值来替换${...}

结论:
这样你就拥有了一个工程会自动在构建测试版本的时候使用测试AppID和icon,在构建AppStore版本的时候使用平常的AppID和icon。

使用预处理器宏你能够在你的代码里使用这些设置项来给不同的配置社会资不同的参数。

你可以更进一步创建更多的构建设置。假设你的App有一个API希望在某些版本下指向生产服务器,在某些版本下又指向开发服务器,你可以使用这个方法来让他们自动指向正确的URL并且给每个版本一个不同的icon!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值