ATS(iOS开发网络适配)一劳永逸的办法

来源:互联网 发布:淘宝旺旺登录 编辑:程序博客网 时间:2024/06/11 15:36
随着iOS系统更新,苹果对系统安全上越来越重视, 所以加入了更多的验证机制,iOS7之后,ATS会对于一些没有经过注册的网址进行阻拦,当然这对于程序开发来说是很苦恼的事情,因为我们的应用程序都需要联网所以这个问题就需要我们在info.plist 中做修改,一般有两个方案,第一种以源码的方式info.plist,实际上就是一个xml文件,在这个xml文件中插入如下代码块:

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

然后这个工程就可以了具体操作如图:

1.打开info.plist

2.插入代码块


第二种方式就是直接修改plist文件,在plist根目录下加入App Transport Security Settings字段,在这个字段下再加入这个字段Allow Arbitrary Loads并将其值设置为YES,问题解决.具体操作如下,



以上两种做法不能从根本上解决问题, 因为如果新打开一个项目还是需要再次添加,下面就说一下如果一劳永逸。

其实方法很简单就是修改模板文件,xcode模板有两种,第一种是文件模板,第二种是项目模板。这个问题需要修改项目模板,当然为了保险起见,修改之前建议备份源文件以防误操作。第一步,按照以下路径打开模板所在位置  

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application/Cocoa Touch Application Base.xctemplate/TemplateInfo.plist

可以知己复制路径之后,打开Finder在前往中直接粘贴回车。

第二步修改TemplateInfo.plist文件,注意如果此时你没有权限会有给予警告,这种情况下你需要设置文件的权限,如何修改这里就不赘述了,如果你不会修改,也可以直接复制TemplateInfo.plist文件到桌面进行修改.  1. 在Nodes中增加一个item, 值(右侧)设置为Info.plist:NSAppTransportSecurity  。 2. 在Definitions字段下增加item, 键(左侧)设置为Info.plist:NSAppTransportSecurity ,值(右侧)设置为

<key>NSAppTransportSecurity</key>

<dict>

<key>NSAllowsArbitraryLoads</key>

<true/>

</dict>

然后用这个文件覆盖掉之前路径下的TemplateInfo.plist文件。然后就大功告成了。具体如下图所示



1 0