Phonegap - 在 xcode 中配置调试和发布版本

Posted

技术标签:

【中文标题】Phonegap - 在 xcode 中配置调试和发布版本【英文标题】:Phonegap - configuring debug and release builds in xcode 【发布时间】:2012-05-23 20:29:09 【问题描述】:

如何根据我是否为调试或发布配置了 xcode 将不同的变量传递到我的 phonegap javascript?最具体地说,现在我希望能够切换应用程序是连接到我的本地开发服务器还是连接到真正的云服务器。

一个选项是如果 javascript 可以检测正在发生的构建类型,那么我可以将两组 url 存储在 .js 代码中并进行适当的选择。

如果在 Xcode 中有一些地方可以存储不同的 url,那就更好了,比如可能在 .plist 或其他东西中——我不太擅长 XCode 或 Objective-C(因此是 phonegap)所以我不不知道这是否是一种正常的做法。

理想情况下,我只需更改 javascript 和 IDE 配置即可做到这一点。如果我需要更改 Objective-C 中的任何内容,答案必须非常具体地说明要做什么。

【问题讨论】:

在 C/C++ 中,DEBUGRELEASE 模式设置了不同的宏。我认为在 Objective-C 中也应该有类似的东西。您可以通过#ifdef 确认 【参考方案1】:

在 XCode 中,我们为每个应用程序设置了目标。默认情况下,每个应用程序都有一个目标。

使用 xCode 中的内置选项复制目标。所以一个用于本地测试,另一个用于实时模式。您也可以在这里让两个目标都处于发布模式。

xCode 中的每个目标都有单独的 .plist 文件用于定义一些设置,并且是的,它们具有共同的代码库。现在将本地服务器 url 放在 target_test 的 plist 中,将真实服务器 url 放在 target_live 的 plist 中。

您的代码应在运行时从相应的 plist 中读取。

Have a look

【讨论】:

你可能需要编写一个插件来读取包中的 plist 文件。 @leopd 没有找到解决这个问题的插件。我会写一个并用 git url 更新你.. @Leopd 插件以最简单的方式就可以使用了。 github.com/futur/NSBundleFileEngine。如果您需要更多信息,请告诉我。 @Leopd 插件已更新,错误已修复。检查 repo 以获取 usage_sample.html 中的更多详细信息。为错误的分支推动道歉,我的错;) 右键单击任何现有目标并单击复制。

以上是关于Phonegap - 在 xcode 中配置调试和发布版本的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap 2.0 在 XCode 中不显示 console.log

在多个 Xcode+PhoneGap 项目之间共享代码

Phonegap+XCode Mac OS 环境搭建

在 Xcode 中生成 AdHoc Phonegap iOS Testflight 时下载失败

phoneGap 4.2.0 和 Xcode 6.1.1 相机和相册错误

如何在 xcode 5.1.1 中使用 phonegap-1.3.0.js 进行相机功能