1

我正在开发一个 iPhone 应用程序,它有一个加载 url 的 UIWebview。当我对代码进行更改时,我将其提交到 Github,然后每晚 Jenkins 都会进行构建并将其部署到服务器上。

我的问题是,我想通过 Jenkins shell 脚本更改 UIWebview 的 url。所以它应该使用开发 url 和生产 url 进行构建。我想我必须创建两个不同的工作,但是我如何告诉 Jenkins 工作它应该为哪个 url 构建。

感谢你的帮助。

谢谢

4

1 回答 1

1

一种想法是在编译步骤中使用命令行定义,-DmyURL='@"$(MYURL)"'然后使用参数化构建,该构建将 URL 作为构建时参数,然后从那里设置该环境变量(这是参数化构建的用途)。

然后,在您的代码中,引用定义中的 URL。

#ifndef myURL
    #define myURL @"http://dev.foo.com"
#endif

然后,您只需使用 myURL 代替常量。

另一种方法是在编译步骤中定义一个简单的值,该值将是一个布尔值,然后您可以将两个 URL 放入代码中,但第一个解决方案将允许在编译时动态确定 URL。

要使用布尔风格的机制,只需-DUSE_PROD_URL=$(USE_PROD)在代码中设置,然后:

#if USE_PROD_URL
    URL=@"http://prod.url.com"
#else
    URL=@"http://dev.uel.com"
#endif
于 2013-04-12T10:09:38.863 回答