2013-08-19 32 views
0

我正在开发一个使用web服务的iPad应用程序。在当前版本中,我有一个常量字符串,它是服务器的地址。每次我想检查某些东西时,我只需更改地址(从生产,应用程序的冻结版本到预生产版本,等于存储库的版本)。问题是我想在iPad上有两个版本的应用程序,但我认为只要包标识符相同,这是不可能的。没有创建另一个项目,这样做的正确方法是什么?我可以拥有“两个目标”,可以分发两个版本的应用程序,唯一的区别是web服务地址?ios分发预览和制作版本

将应用程序传递给客户端时,此问题会升级,因为每当我部署测试版本时,“冻结”版本都将被删除。

每次在部署之前更改webservice地址时,是否应该更改包标识符?或者也许有一些“自动化”的方式呢?

在此先感谢

回答

1

我不会依赖于您的服务请求的捆绑标识符,你最终会在你需要维护服务器的许多版本的API的。你可以做的是在你的项目上创建一个新的目标,并将一个预处理器宏添加到你的编译设置中,然后在代码中引用该宏来决定使用哪个URL。

enter image description here

然后在你的代码:

- (NSURL *)url { 
NSString *urlString = @"your://standars.url"; 

#如果APITEST
urlString = @ “你://test.url”;
#ENDIF

return [NSURL URLWithString:urlString]; 

}

+0

感谢答复,但我不知道这是否是对我来说是正确的选择。用户一次可以在设备上安装两个版本? – patryk

+1

不是,因为你肯定需要改变捆绑ID,并且为了设置你可能想要添加一个不同的目标。请记住,认为它可能会变得繁琐,保持2个版本的同步。 – cescofry

+0

我接受你的回答,但我需要补充说我重复了目标,更改了捆绑ID,设置了正确的捆绑名称,并使用预处理器宏来设置适当的服务器地址:-)现在我在模拟器/设备中有两个应用程序。保留预生产和生产应用程序的版本并不困难,因为我使用git存储库来跟踪代码更改(并且后端具有相同的模型,两台服务器)。 – patryk