Xcode构build设置 – 从生产版本的plist中删除代码

在我们的项目中,我们已经closures了HTTPS请求,并将它们作为HTTP发送给我的本地机器上的API进行内部testing。 为此,我将此代码添加到info.plist

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

这允许应用程序运行HTTP请求。 显然这对于​​现场环境是不利的,也不太可能获得app store的批准; 所以我想在我们的生产构build目标中设置代码,以自动删除这个违规代码,以免我们不小心把它留在。我已经做了一些search,但似乎无法find任何build议在网上。

这样做的最好方法是创build一个当前应用程序目标的副本,并将其命名为“MyApp PROD”,并将您的现有目标命名为“MyApp DEV”。 现在这两个目标都有自己的.plist文件。 在“MyApp DEV”plist文件中,您将需要的值添加到开发中,并在“MyApp PROD”plist文件中不保留生产应用程序中不需要的那些值。

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

1.您可以针对不同目标(如代码签名证书)和特定于该目标的供应configuration文件提供不同的构build设置,以便您不必一次又一次更改它们。

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

还有很多。 1 2 3 4 五 6 7 8

添加用户定义的构build设置,如ALLOWS_ARBITARARY_LOADS然后将其值更改为“ Yes或“ No ”。 然后更改信息plist项

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

注意 :这里NSAllowsArbitraryLoads是作为一个string添加的,因为我们不能将布尔值或数值的NSAllowsArbitraryLoads设置添加到plist。 即使它是一个string,其布尔值将布尔值是或否在运行时,因为信息plist正在作为一个字典。 参考