iOS开发中是否有类似于Android产品风味的概念?

7
我们在Android中使用产品风味(product flavors)来保持相同的源代码,但根据所选的风味有条件地将端点定向到dev/qa/production服务器。例如,当我们想要在“dev”环境中测试新的端点时,我们可以在src/dev/res/values/endpoints.xml中有一个条目,其XML等效于urlbase = https://dev-endpoint.ourserver.com/v3/,并使用“ dev”产品风味来构建指向我们开发环境的APK。
请参考http://tools.android.com/tech-docs/new-build-system/build-system-concepts
那么,在iOS开发中是否有类似的概念呢?
1个回答

12

是的。如果您在左侧栏中选择您的项目,然后在内部左侧栏中选择项目下的您的项目,再在内部顶部栏中选择“信息”,您将看到一个标记为配置的部分。你可以在这里配置。

然后在内部左侧栏中选择您的目标,并在内部顶部栏中选择“构建设置”。 在搜索框中搜索“preproc”。在Apple LLVM - 预处理部分下,您可以添加自定义预处理宏。对于您的配置,定义类似于“DEV = 1”等内容。

现在,在您的代码中,您可以说#if DEV等等。

许多项目使用AFNetworking来与其后端通信。 您可以根据定义为您的AFHTTPSessionManager子类或其他内容设置baseURL


1
有其他方法可以做到这一点,但它们都将基于配置进行。 - i_am_jorf
那么,如果我想要支持3个环境(开发、测试和生产),我需要6个构建配置来支持每个环境的调试/发布。对吗? - Joe
是的。但是你真的需要为开发和QA发布吗? - i_am_jorf
1
这似乎可以工作,但是...在运行应用程序时是否可以快速选择dev/qa/prod?就像Android Studio中的左下角“Build variants”选项卡一样。 - voghDev
4
使用这个方法来更改捆绑标识符怎么样? - Florian Mac Langlade
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接