代码之家  ›  专栏  ›  技术社区  ›  Tom van Zummeren

iphone-在本地和生产环境设置之间切换

  •  7
  • Tom van Zummeren  · 技术社区  · 16 年前

    我正在开发一个iphone应用程序,它使用服务器来获取数据。在应用程序源代码的某个地方,我硬编码了用于连接的url。这是好的,除了我不总是想测试使用生产服务器!我不想搞乱实时数据,只想在本地测试一些东西。所以我设置了同一个服务器的本地版本。但为了让iphone应用程序使用服务器,需要更改源代码中的硬编码url。

    如果你经常在这两台服务器之间切换,这就有点麻烦了。另外,我可能会不小心发布仍然使用本地url的应用程序!

    我在想也许Xcode可以帮我解决这个问题,因为它有“调试”和“发布”配置选项的概念。所以我的问题是:我可以改变调试配置,使其指向本地服务器url吗?可能通过指向包含特定于环境的url的属性或plist文件。然后,我可以将这个属性文件分为两个版本,并使调试配置指向一个,而将发布配置指向另一个。

    有人知道我怎么做到吗?

    3 回复  |  直到 16 年前
        1
  •  2
  •   Adam Woś    16 年前

    在其中一个头文件(例如预编译的头文件)中,使用url定义宏。看一看 this article 使用类似的方法。

    顺便说一下,我在我的所有应用程序中都使用了本文中的日志记录方法——它工作起来很有魅力,我强烈推荐它!

        2
  •  5
  •   vfn    16 年前

    将此代码放在需要使用基于模式(调试/发布)=(开发/生产)的配置的位置。

    最好放在“projectname”_prefix.pch文件上。

    #ifndef __OPTIMIZE__ // __OPTIMIZE__ is not enabled, it means that the active config is Debug, so here you have to put your code for development mode
    
    // For example
    #define SERVER_URL @"http://my.test.server/something"
    
    #else //__OPTIMIZE__ is defined, so put here your production code
    
    // For example
    #define SERVER_URL @"http://my.production.server/something"
    
    #endif // __OPTIMIZE__

    干杯,
    变频调速

        3
  •  1
  •   ennuikiller    16 年前

    只需编辑gcc语言设置,就可以在xcode中定义预处理器宏:

    转到项目菜单并选择“编辑项目设置”。转到“构建”选项卡。

    转到标记为“GCC4.0-语言”的部分。有一个名为“其他C标志”的设置。在那里添加所有想要的“-dwhatever”宏。