更新了iOS9和XCode7,之后,Swift变成了2.0,有了新的语法习惯,iOS也加强了安全方面的限制。我们原本的项目就会出现不少问题。先来看我之前的项目中出现的3个错误吧和相关的解决办法吧。

1. HTTP网络请求错误。

因为iOS9默认使用HTTPS的链接方式,所以如果你的程序以前使用的是HTTP方式进行网络链接,那么更新了之后,你的程序可能不会有bug,但是当运行的时候,遇到访问HTTP的接口时,就会出现这样的错误提示:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

所以,解决的办法是在info.plist中添加进去新的项目:NSAppTransportSecurity 和 NSAllowsArbitraryLoads

注意,NSAppTransportSecurity的类型是Dictionary,NSAllowsArbitraryLoads的类型是Boolean,另外NSAllowsArbitraryLoads一定要放置在NSAppTransportSecurity的二级目录之下。

2. 自定义地图Annotation的图标

在iOS9之前,我们基本上是偏向于使用MKPinAnnotationView的,因为MKPinAnnotationView如果设置了自定义的图片,就会显示之;如果不设置自定义的图片,就会默认显示大头针的样式。但是注意,到了iOS9,就不能使用MKPinAnnotationView这个类型了,因为它将不再支持自定义的图片,如果想要显示自定义的图片的话,必须使用MKAnnotationView这个类。

但是这里有个很尴尬的地方。比如你的工程里面,有部分地图上的点显示默认的大头针,有部分显示自定义的图片,需要在你的

mapView viewForAnnotation代理中返回两个不同类型的Annotation,例如下面我的工程中的代码(因为这个工程时间比较久,所以用的还是OC,swift的话基本类似):

  1. static NSString* BridgeAnnotationIdentifier = @"bridgeAnnotationIdentifier";
  2. [mapView dequeueReusableAnnotationViewWithIdentifier:BridgeAnnotationIdentifier];
  3. if (level==0 || level == 1) {
  4. MKPinAnnotationView* PinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:BridgeAnnotationIdentifier];
  5. PinView.pinColor = MKPinAnnotationColorRed;
  6. PinView.opaque=NO;
  7. PinView.canShowCallout = YES;
  8. return PinView;
  9. }else if(level==2){
  10. MKAnnotationView* customView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:BridgeAnnotationIdentifier];
  11. customView.canShowCallout = YES;
  12. customView.opaque=NO;
  13. ......
  14. return customPinView;
  15. }

3. 最后来看一个新的错误关于BitCode

(null): URGENT: all bitcode will be dropped because '/Users/myname/Library/Mobile Documents/com~apple~CloudDocs/foldername/appname/GoogleMobileAds.framework/GoogleMobileAds(GADSlot+AdEvents.o)' was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.

这个错误一般会出现在引入的第三方的框架中出现,是关于bitcode的。

Note: For iOS apps, bitcode is the default, but optional. If you provide bitcode, all apps and frameworks in the app bundle need to include bitcode. For watchOS apps, bitcode is required.

所以解决的办法也很简单,步骤如下(从Statckoverflow上传过来的):

注意一下,这个只有在Xcode7下面才有。

暂时就只遇到这3个问题,有新的问题,我会接着更新blog。

转自http://blog.csdn.net/u011156012/article/details/48707313

【XCode7+iOS9】http网路连接请求、MKPinAnnotationView自定义图片和BitCode相关错误--备用的更多相关文章

  1. 升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错(引用他人的)

    升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错 The resource could not be loaded because the App Transport Sec ...

  2. SQL Server:查询当前服务器有多少连接请求

    有时DBA需要检查当前服务器有多少连接请求,以及连接请求的登录名,客户端版本,主机名,程序名等等之类的信息,我们就可以对服务器的连接状况有所了解,防止不明用户使用. SQL Server本身提供了这么 ...

  3. 如何用ASP.NET实现bosh模拟http双向长连接请求

    在做研究之前先简单说一下之前公司的通讯模块.最早的时候公司开发的web管理系统是需要配合c++桌面客户端进行一些系统底层操作,并非普通的b/s架构,或者c/s架构,因为需求是可以通过web管理系统向客 ...

  4. C# Socket连接请求超时机制

    作者:RazanPaul 译者:Todd Wei 原文:http://www.codeproject.com/KB/IP/TimeOutSocket.aspx 介绍 您可能注意到了,.Net的Syst ...

  5. App项目升级Xcode7&iOS9(续) - This bundle is invalid. The bundle identifier contains disallowed characters

    金田 iOS 9发布已经有2月有余,现在Xcode已经有升级到Xcode7.1,开发环境安装等一系列相关的流程,以及Xcode 7 & iOS 9升级相关的一些部分,在这里就不再多加赘述(详见 ...

  6. TCP连接建立系列 — 连接请求块

    连接请求块(request_sock)之于TCP三次握手,就如同网络数据包(sk_buff)之于网络协议栈,都是核心的数据结构. 内核版本:3.6 Author:zhangskd @ csdn blo ...

  7. TR-069_Amendment-4:附录G.穿越NAT网关的连接请求方式

    注意:这种机制只适用于RFC 3489[21]中定义的经典STUN,RFC 5389引入后,这个机制已经过时.这个机制不是设计用于RFC 5389中定义的STUN.IPv6部署要么不使用NAT,要么以 ...

  8. (链接)xcode7,ios9 部分兼容设置

    xcode7,ios9 部分兼容设置 http://www.cnblogs.com/loganv/p/4647833.html

  9. C# Socket.Connect连接请求超时机制

    介绍 您可能注意到了,.Net的System.Net.Sockets.TcpClient和System.Net.Sockets.Socket都没有直接为Connect/BeginConnect提供超时 ...

随机推荐

  1. 10465 - Homer Simpson 贪心

                                            Homer Simpson Time Limit: 3 seconds Memory Limit: 32 MB Home ...

  2. oracle修改字段类型

    有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行:alter table tb modify (name nvarchar ...

  3. 【转】【2015MIIC】迅雷CTO陈磊:互联网思维会害死很多传统企业

    MIIC2015大会的“跨界与重构”论坛上,迅雷CTO.网心科技CEO陈磊的演讲引起众多共鸣——独家揭秘“互联网大忽悠”,给这群人画了像,互联网大忽悠通常有五招: 第1招,画大饼,给你一个宏伟的目标: ...

  4. JavaScript如何获得Select下拉框选中的值

    js代码: var mySelect = document.getElementById("resultList2"); var mySelectText = mySelect.o ...

  5. css所有选择器的详解

    ----------------------------------------css 选择器---------------------------------------- 1,组合选择器: 1)e ...

  6. gulp自动化框架的搭建

    自动化框架的搭建:https://github.com/zjhsd2007/www 屏蔽掉的部分是Test(文件夹的目录 也是你的项目名称);本地项目启动后 配合sass,会自动启动浏览器,然后好处多 ...

  7. Double跟double

    Double 是类 double是基础数据类型.Double类型是double的包装类,在JDK1.5以后,二者可以直接相互赋值,称为自动拆箱和自动装箱.看你的提示,我推测你的jdk版本在1.5以前. ...

  8. SQL 有父标识的 递归查询

    递归查询,临时表的高级应用 WITH temp AS ( --父项 SELECT * FROM Ar_Area WHERE Ar_Parent = UNION ALL --递归结果集中的下级 SELE ...

  9. Android 讯飞语音之语音合成(在线有声朗读)

    原文:http://www.cnblogs.com/scetopcsa/p/3845427.html 在线语音合成的使用方法: 首先下载相关的sdk,这个网址里有多种版本,我选择的Android. h ...

  10. 解决OOM小记

    跟猜想的一样是OOM.一回来遇一不怎么熟悉的sb,给我气的....算了.....哥哥也是种种原因回的合肥.继续看问题. 这个地方的界面是这样的 划红线的地方是三个LinearLayout,每次oncl ...