升级Xcode7之后的适配问题(插件ATS等)

Posted alexZeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了升级Xcode7之后的适配问题(插件ATS等)相关的知识,希望对你有一定的参考价值。

一、插件失效
1. 首先查看 Xcode 的 UUID,在终端执行
defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID 
会得到一串 UUID 码
2. 找到 Xcode 插件所在的目录
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins
选择已安装的插件如:VVDocumenter-Xcode,右键显示包内容,找到 info.plist
找到DVTPlugInCompatibilityUUIDs的项目,添加一个Item,Value的值为之前Xcode的UUID,保存.
重启 Xcode 之后会提示"Load bundle"、 "Skip Bundle",这里必须选择"Load bundle",不然插件无法使用。
3. 如果手误点击了"Skip Bundle"的解决办法
找到该插件安装路径下,继续打开在 info.plist 删除与命令端里面同样的UUID号,一般都是会再最后一行,自己添加的那一行也要删除掉
保存之后重启Xcode,再次添加之前xcodeUUID。在重启就再次出现了插件提示

二、ATS适配

ATS全称为App Transport Security,它是ios9的一个新特性,旨在提高iOS设备与服务器交互的安全性。简单地说,ATS会阻止未注册的网络请求。你可以在info.plist文件中注册相应的host,这样该host的网络请求就不会被阻止。你也可以设置不阻止任何host的网络请求。

参考文档地址:https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

添加名为NSAppTransportSecurity的Dictionary,其键值对有:

NSAllowsArbitraryLoads:Boolean,设置为YES,则允许所有访问

NSExceptionDomains:Dictionary 允许访问的域名

NSIncludesSubdomains:Boolean 包含子域名

NSTemporaryExceptionAllowsInsecureHTTPLoads:Boolean 临时允许不安全HTTP加载

NSThirdPartyExceptionAllowsInsecureHTTPLoads:Boolean 类似上条

NSTemporaryExceptionMinimumTLSVersion:String 最低的TLS版本号

NSThirdPartyExceptionMinimumTLSVersion:String 类似上条

NSTemporaryExceptionRequiresForwardSecrecy:Boolean 服务器支持前向保密时,临时允许例外

NSThirdPartyExceptionRequiresForwardSecrecy:Boolean 类似上条

技术分享

技术分享

 

<key>NSAppTransportSecurity</key>

<dict>

    <key>NSAllowsArbitraryLoads</key>

    <true/>

</dict>
<key>NSAppTransportSecurity</key>

<dict>

    <key>NSExceptionDomains</key>

    <dict>

        <key>YOURHOST.COM</key>

        <dict>

            <key>NSIncludesSubdomains</key>

            <true/>

            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>

            <true/>

            <key>NSTemporaryExceptionMinimumTLSVersion</key>

            <string>1.0</string>

            <key>NSTemporaryExceptionRequiresForwardSecrecy</key>

            <false/>

        </dict>

    </dict>

</dict>
三、process launch failed: Security
这是因为iOS9以后添加的应用,默认为不信任,需要到“
通用-> 描述文件 -> 信任应用
”中自行添加信任,才能运行

以上是关于升级Xcode7之后的适配问题(插件ATS等)的主要内容,如果未能解决你的问题,请参考以下文章

xcode7和ios9适配之路

升级Xcode7之后VVDocumenter-Xcode不能用的解决办法

iOS10 适配 ATS(app支持https通过App Store审核)

Xcode 7.1 beta 2- 禁用 ATS

iOS10 适配 ATS(app支持https通过App Store审核) 韩俊强的博客

Xcode 7.1 beta 2- 禁用 ATS