安装同一iPhone项目的不同版本?

安装同一iPhone项目的不同版本?,iphone,Iphone,当我制作游戏原型时,我经常需要回去与旧版本进行比较,以便更好地了解我是否在正确的轨道上。但是每次我需要检查一个特定的版本时,必须检查旧版本并重新导出,这是一个漫长的过程。如果我能简单地推出不同的版本,它会更加流畅 如何在设备上安装同一项目的多个版本?如果为程序提供不同的捆绑标识,则它们可以安装在同一设备上。可能会添加一个新的生成目标,将随机数(或生成版本,或svn版本等)附加到包标识符(可能还有应用程序名称)的末尾,然后您可以一次安装多个版本 例如,您可能有标题为“mygame”的应用程序“co

当我制作游戏原型时,我经常需要回去与旧版本进行比较,以便更好地了解我是否在正确的轨道上。但是每次我需要检查一个特定的版本时,必须检查旧版本并重新导出,这是一个漫长的过程。如果我能简单地推出不同的版本,它会更加流畅


如何在设备上安装同一项目的多个版本?

如果为程序提供不同的捆绑标识,则它们可以安装在同一设备上。可能会添加一个新的生成目标,将随机数(或生成版本,或svn版本等)附加到包标识符(可能还有应用程序名称)的末尾,然后您可以一次安装多个版本

例如,您可能有标题为“mygame”的应用程序“com.mycompany.mygame”,您的脚本将创建标题为“mygame43”的版本,如“com.mycompany.mygame43”

然而,这一点可能会被苹果喜欢给开发者制造一切困难(也称为代码签名)所击败。我个人不做太多的应用商店开发,但我知道资源调配配置文件可能是一个巨大的痛苦,他们可能会有这种方法的问题。谁知道呢


编辑:我猜它确实适用于代码签名,但不适用于应用程序内购买。

您需要每个版本具有不同的捆绑标识


您可以创建一个脚本来编辑Info.plist,将版本号附加到捆绑包标识符,并创建一个自定义构建阶段来为您运行该脚本。。。或者您可以手动编辑捆绑标识。

编辑以突出显示以前的第三个选项以及我现在处理此问题的方式:

我会使用源代码管理来标记每个版本,这样就很容易回到以前版本的代码。应该可以在单独的文件夹中签出标记的项目(我使用Subversion)

在单独的目录中保存旧版本后,请更改捆绑包标识符-添加标记名和构建等。更改捆绑包标识符时,请确保不更改初始编号,并且应用程序仍应使用您的配置文件。这假设您有一个用于开发的通配符配置文件。如果您需要包括Nofifications或应用内购买,这可能是不可能的

=============================

先前版本的答案:

我有一个用来保存版本的快速技巧——我使用不同版本的模拟器,在开发过程中,我不断在不同版本之间移动。如果使用模拟器执行此操作,还可以移动文件

但是,在设备上,您必须按照前面提到的更改捆绑包标识符。每次我想冻结函数并进入新阶段时,我都会编辑捆绑包版本

另一种选择是使用版本控制标记每个版本,允许您在需要时作为单独的项目返回到以前的版本,然后您可以更改捆绑包标识符并作为单独的版本安装


现在我已经写了这个回复,我想我将开始使用选项3,并在SVN中更好地标记我的版本,并使用这种方法,因为它比必须记住哪个模拟器中的版本随机性要小一些,它也将允许我在设备上部署。

我这样做,并为我工作: 我使用不同产品名称的相同项目

1.更改产品名称

XCode组和文件窗格->目标->项目名称->(Ctrl+单击)获取信息->构建->产品名称

这使我能够使用相同的配置文件在同一设备上创建多个应用程序(根据版本不同使用不同的名称,如AppName1.1、AppName1.2)

2.对于每个项目,我使用ProductName创建文件夹只是为了进行标识

因此,产品名为AppName1.1的项目将包含在文件夹AppName1.1等中。 在版本文件夹中进行许多更改时,我会包含一个小的readme.txt


项目名称保持不变,因为如果我更改它将不起作用。

每当我到达一个里程碑时,我只是将整个项目压缩成一个zip文件。然后,如果我需要返回并引用它或运行它,我可以提取它并编译,我有两个独立的版本可以切换。这不是最优雅的解决方案,但它相当容易做到,您可以将所有备份放到硬盘和外部硬盘上,以确保安全。

我当然也是这样做的+1.可能值得注意的是,要使其起作用,您需要在开发配置文件中使用通配符应用程序id。我之所以提到这一点,是因为一些应用程序,例如那些使用应用内购买的应用程序,不能在配置文件中使用通配符id。erastusnjuki的解决方案不会解决应用内购买问题吗?(更改产品名称而不是捆绑标识)SpringBoard(主屏幕)不会显示多个具有相同捆绑标识的应用程序。明白了。我的项目的设置方式(以及默认情况下如何设置xcode项目),如果我更改产品名称,捆绑包ID也会更改,因此erastusnjuki解决方案可以工作。谢谢你回答这个问题。您是否介意编辑您的答案以澄清代码签名的问题,并注意到它不适用于应用程序内购买?谢谢