升级Xcode7后遇到的一些问题

1、首先是遇到的一个crash问题,是因为新浪微博SDK引起的(我们用到了shareSDK来做分享),更新shareSDK即可。

2、网络请求失败: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.

原因:iOS9默认使用HTTPS请求

解决方法(二选一):1)让服务器支持https

    2)暂时退回http请求:在工程的Info.plist文件里添加NSAppTransportSecurity字典类型的,添加一个元素:key为NSAllowsArbitraryLoads,值为YES



3、运行时报错(但并未crash):<Error>: CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

原因设置app的状态栏样式的使用使用了旧的方式,在info.plist里面设置了View controller-based status bar appearance为NO ,默认为YES,一般式iOS6的时候使用这种方式,iOS7,8也兼容,但是到了iOS9就报了警告。

解决方法:删除原先设置状态栏样式的代码,并将View controller-based status bar appearance设置为YES




4、bitcode问题

原因:Xcode7之后会默认开启的(bitcode相关解释参考http://www.cocoachina.com/ios/20150818/13078.html),而项目中用到的SDK未支持bitcode

解决方法(二选一):1)更新所有sdk

2)暂时关闭bitcode build setting -->build options -->enable bitcode 设置为NO.

升级Xcode7后遇到的一些问题_第1张图片


5、XCode7链接第三方库提示warning:

warning:Could not resolve external type c:objc(cs)NSString
warning: Could not resolve external type c:objc(cs)NSDictionary

warning: Could not resolve external type c:objc(cs)NSMutableString
warning: Could not resolve external type c:objc(cs)NSError

...

解决方法:1)  Go to Build Settings -> Build Options -> Debug Information Format
2)  Change the Debug setting from "DWARF with dSYM File" to "DWARF"
3)  Leave the Release setting at "DWARF with dSYM File"
The problem appears to be that Xcode was trying to create dSYM files for Debug builds.  You don't need dSYM files for Debug builds -- it's release builds where you need them.



6、iOS 9使用URL scheme必须将其加入白名单:

编译时报错:canOpenURL: failed for URL: "mqqopensdkapiV2://qqapp" - error: "This app is not allowed to query for schememqqopensdkapiV2”

解决方法:Info.plist文件中添加一个key为LSApplicationQueriesSchemes的数组值,里面包含需要添加白名单的string类型的 scheme。在项目中使用了qq,微信等分享登录功能,需要添加的值为:

mqqopensdkapiV2
mqqOpensdkSSoLogin
mqq
mqzoneopensdkapiV2
mqzoneopensdkapi19
mqzoneopensdkapi
mqzoneopensdk
mqzone

weixin
wechat

  • sinaweibo,

  • sinaweibohd,

  • sinaweibosso,

  • sinaweibohdsso,

  • weibosdk,

  • weibosdk2.5 更多的白名单可查看http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/ (不是打广告哦...)

升级Xcode7后遇到的一些问题_第2张图片



7、系统framework问题,升级之后framework全变红了(并不影响程序运行),替换成9.0版本的framework即可,旧版本的 .dylib后缀库文件在Xcode7中已经换成 .tbd了,相应进         行替换即可


8.解决警告“ld: warning: directory not found for option”

从项目中删除了某个目录、文件以后,编译出现警告信息:

ld: warning: directory not found for option“XXXXXX”

很奇怪,为什么已经从项目中删除了文件和文件夹还是报这个警告呢?


去掉警告的办法如下:


1选择工程, 编译的 (targets)

2选择 Build Settings 菜单

3查找 Library Search Paths 和 Framework Search Paths, 删掉编译报warning的路径即OK

升级Xcode7后遇到的一些问题_第3张图片

升级Xcode7后遇到的一些问题_第4张图片

升级Xcode7后遇到的一些问题_第5张图片




你可能感兴趣的:(升级Xcode7后遇到的一些问题)