2016-10-21 16:27:20 u013302606 阅读数 665

1.应用程序-xcode 显示包内容-Contents-Developer-Platforms-iPhoneOS.platform-DeviceSupport 把里边 7.1 的文件夹粘贴到xcode8 对应的文件夹内


2.应用程序-xcode 显示包内容-Contents-Developer-Platforms-iPhoneOS.platform-Developer-SDKs-iPhoneOS.sdk-SDKSettings.plist 文件下DefaultProperties - DEPLOYMENT_TARGET_SUGGESTE... 在该数组中添加 7.1 对应的测试版本 (这个版本排序一定要是从小到大,直接把小的添加到下面是不管用的,必须把小的拖到最上边).


3.退出你的Xcode,然后重新启动,就可以了。

注意点:
在第二步的时候,修改SDKSettings.plist文件的时候,可能会提示 Could not add write permission to the file because you do not own it. Try modifying the permissions of the file in the Finder or Terminal
主要是说没有对文件写的权限。这时候需要对SDKSettings文件和上级父类文件夹都设置成可读写模式。
对文件/文件夹权限修改,简单粗暴的方法(针对MAC 电脑):直接选中文件/文件夹->右键显示简介->共享与权限....

2015-10-08 17:19:10 u012881779 阅读数 369

[IOS]适配iOS9


iOS9已经发布,Xcode7.0默认支持数据安全访问(不再默认使用 Http 等不安全的网络协议,而默认采用 TLS 1.2),在公司的服务端没有升级使用TLS 1.2之前,以后需要对Xcode7.0之后的版本对项目info.plist多进行一项配置,以便可倒退回不安全的网络请求(能继续访问http)。


新增一个Key:App Transport Security Settings(应用交通安全设置)
 

下一级再新增一个Key:Allow Arbitrary Loads(允许任意加载)  并且设置为YES



选择Build Settings 搜索bitcode,设置Enable Bitcode 为NO


注意:后缀为dylib的库在Xcod7.0之后已经改为后缀tbd了,需要删掉重新添加一次


Xcode7.0之后






2018-12-14 13:41:43 weixin_43299553 阅读数 40
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_43299553/article/details/85002339
在老工程上添加功能 用xib做的 测试说iOS8一直闪退 拿到测试机 打印如下 *** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named UILayoutGuide' 解决办法: 关闭safe area layout guide 解决

在这里插入图片描述

2015-10-11 10:19:31 Boyqicheng 阅读数 640

随着iOS系统的发布,很多应用不得不做出适配iOS9的改善。需修改6方面的内容

一、字体:iOS9 字体变得美观当字体间隙变大

在同一个label中显示的字体个数因间隙变大而有的文字不显示。所以建议

使用sizetofit 或者ios向上取整 ceilf() 或者提前计算

<span style="font-family:Times New Roman;font-size:18px;">{
// 设置字体
CGSize size = [@"这是需要设置的字体" sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:13]}];
        CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height));
}</span>


二、NSAppTransportSecurity
iOS9让所有的HTTP默认使用了HTTPS,原来的HTTP协议传输都改成TLS1.2协议进行传输。直接造成的情况就是App发请求的时候弹出网络无法连接。例如:iOS9 兼容 bmob 方法,在Info.plist中添加NSAppTransportSecurity类型Dictionary。

在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES。在 Info.plist 中设置好 ,bmob 就能继续用了

三、Bitcode

bitcode的理解应该是把程序编译成的一种过渡代码,然后苹果再把这个过渡代码编译成可执行的程序。bitcode也允许苹果在后期重新优化我们程序的二进制文件,有类似于App瘦身的思想。

用了xcode7的编译器编译之前没问题的项目可能会出现下列报错。

XXXX’ does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for thistarget. for architecture arm64

问题的原因是:某些第三方库还不支持bitcode。要不然是等待库的开发者升级了此项功能我们更新库,要不就是把这个bitcode禁用。

禁用的方法就是找到如下配置,选为NO.(iOS中bitcode是默认YES,watchOS中bitcodes是不让改的必须YES。)

四、设置信任

这一条只和企业级应用或inhose 有关,和AppStore渠道的应用无关。

在iOS8只是弹出一个窗问你是否需要让手机信任这个应用,但是在iOS9却直接禁止,如果真的想信任需要自己去手动开启。类似于Mac系统从未知开发者处下载的dmg直接打不开,然后要到系统偏好设置的安全性与隐私手动打开。 用户需要去 设置---》通用---》描述文件 里面自行添加信任。这种问题的处理方法也就两种:1.提前周知暂时不要升级iOS9  2.大多是公司员工使用的企业级应用,群发一个指导邮件。

五、URL scheme

URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。

在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转

如果iOS9没做适配 会报如下错误:canOpenURL: failed for URL : "mqzone://qqapp" - error: "This app is not allowed to query for scheme mqzone"

具体的解决方案也是要在info.plist中设置 LSApplicationQueriesSchemes 类型为数组,添加所有你用到的scheme,用字符串NSString类型添加访问网站名

六、tableView

虽然现在的iOS9已经推送正式版了,但是iOS9使用时还是会感觉到App比以前更加卡顿了,tableView拖动时卡顿显示的最为明显。 并且之前遇到一个bug,原本好的项目用xcode7一编译,tableView刷新出了问题 ,[tableView reloadData]无效 有一行cell明明改变了但是刷新不出来。 感觉可能是这个方法和某种新加的特性冲突了,猜测可能是reloadData的操作被推迟到下一个RunLoop执行最终失效。解决的方法是,注释[tableView reloadData],改用局部刷新,问题居然就解决了。

在网上查询到的结果,跟大家分享分享!





2015-09-19 21:34:23 AK_Fisher 阅读数 730

       前提是已经适配好IOS8了 


   iOS9 默认是发送的请求是HTTPS,如果服务器不支持HTTPS,将会返回失败。苹果的想法也太超前了。中国的互联网企业有几个是https请求的,大部分都是http。并且苹果支持CA颁发证书的https请求。可能苹果考虑到实事情况的吧。所有有提供了http 请求。在ios 9 上只需要简单在plist文件添加字段就行了。。

 https--->http

 不废话 。只需要在plist 文件中添加 

<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict> // 这样就可以继续沿用之前的http请求了。
bitcode 

  xcode7 默认开启了bitcode 模式。这种模式的功能就是。当你已经提交了app。并且已经上线了。。这时候苹果公司有了新的算法可以优化的你的app使其运行起来跟加有效率。这时候你就不用在重新提交新的app项目。苹果公司直接用你之前的bitcode模式的app包

就行了。但是鉴于第三方sdk没有适配ios9.这时候用xcode7 编译就会报错误。你只需要关闭bitcode 模式即可。等以后sdk 都适配ios9 在打开就行了。。

Build Settings   搜索 bitcode  改成NO 即可


URLScheme  

这部分是对有打开第三方app的适配 。比如分享。支付宝等等  IOS9 最多支持50个scheme, 就是你的app 最多能调用另外的50个app。同样也是在plist 文件中加多个key--value 

<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>weixin</string>
		<string>wtloginmqq2</string>
		<string>mqqopensdkapiV3</string>
		<string>mqqwpa</string>
		<string>mqqopensdkapiV2</string>
		<string>mqqOpensdkSSoLogin</string>
		<string>mqzoneopensdkapiV2</string>
		<string>mqzoneopensdkapi19</string>
		<string>mqzoneopensdkapi</string>
		<string>mqzoneopensdk</string>
		<string>mqzone</string>
		<string>mqqopensdkapiV3</string>
		<string>mqqwpa</string>
		<string>mqqopensdkapiV2</string>
		<string>mqqOpensdkSSoLogin</string>
		<string>mqq</string>
		<string>wechat</string>
	</array>

   只要你app 测试运行的时候在控制台打印出来类似   在这里scheme 都用xxxx 代替

-canOpenURL: failed for URL: "xxxx" - error: "This app is not allowed to query for scheme xxxx"

Open Failure!   统统添加array 里面 。。 如果打印是下面就是添加成功了

-canOpenURL: failed for URL: "xxxx" - error: "(null)"     




                本人小菜 。如有错误请指正。拍砖  



适配iOS 11

阅读数 273

没有更多推荐了,返回首页