升级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以后添加的应用,默认为不信任,需要到“
通用-> 描述文件 -> 信任应用
”中自行添加信任,才能运行