Xcode构建设置 - 从生产构建的plist中删除代码

时间:2015-09-24 03:26:09

标签: ios objective-c xcode

在我们的项目中,我们已关闭HTTPS请求并将其作为HTTP发送,以便针对本地计算机上的API进行内部测试。 为此,我将此代码添加到info.plist

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

这允许应用程序使用HTTP请求运行。显然这对于​​实时环境是不利的,也不太可能获得应用程序商店批准;所以我想在我们的生产构建目标中设置代码以自动删除这些有问题的代码,以免我们意外地将其留下。我已经做了一些搜索,但似乎无法在网上找到任何建议。

2 个答案:

答案 0 :(得分:2)

添加用户定义的构建设置,例如ALLOWS_ARBITARARY_LOADS,然后将其值更改为YesNo以获取配置。然后更改信息plist条目

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <string>$(ALLOWS_ARBITARARY_LOADS)</string>
</dict>

注意:此处NSAllowsArbitraryLoads作为字符串添加,因为我们无法向plist添加布尔值或数值rom构建设置。即使它是一个字符串,它的bool值在运行时将是布尔值Yes或No,因为info plist正在作为字典。Reference

答案 1 :(得分:1)

执行此操作的最佳方法是创建当前应用目标的副本,并将其命名为“MyApp PROD&#39;并将您现有的目标命名为&#39; MyApp DEV&#39;。现在两个目标都有自己的.plist文件。在MyApp DEV&#39; plist文件,您可以放置​​开发所需的所需值以及MyApp PROD&#39; plist文件,您不保留生产应用程序中不需要的值。

为每个环境(如DEV,UAT和PROD)使用单独的目标可以为您提供其他优势:

1.您可以为不同的目标设置不同的构建设置,例如特定于该目标的代码签名证书和配置文件,这样您就不必一次又一次地更改它们。

2.您可以关联特定目标所需的所需资源和实施文件。

还有更多。     1     2     3     4     5     6     7     8