[iOS9开发]问题及解决方法

截至15.09.25 


1 bitcode报错, 

提示错误如下图如下,具体是xxx does not contain

或者

xcode7默认会开启bitcode 会导致第三方框架报错,下面是友盟的错误:libMobClickLibrary.a(MobClick.o)' 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 this target. for architecture armv7

有两种方式可以解决 :1,更新库 2,build setting 中,搜索bitcode,并把 enable bitcode 设置为 NO


问题2: 网络请求失败返回404

解决方法:

找到Info.plist, 右击 -> Open as-> Source Code,添加以下代码

NSAppTransportSecurityNSAllowsArbitraryLoads

问题3: 分享出现-canOpenURL: failed for URL:(主要是第三方分享)

找到Info.plist, 右击 -> Open as-> Source Code,添加以下代码(我只有微信和qq,其他平台待收集)

weixin

wechat`

其他scheme链接如下

http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/

问题4: 发布app的时候提示错误 .bundle' does not contain a bundle executable,如下图所示

搜索所有项目中在xxx.bundle的Info.plist文件,如果该bundle不是可执行的,需要重复以下步骤,

删除CFBundleExecutable

将CFBundlePackageType 配置为 BNDL,默认好像就已经配好了

5如果使用ios9 sdk编译,,Foundation下默认所有http请求都被改为https请求  如果目前没有时间解决,可以在info.plist中添加:

1,NSAppTransportSecurity -> key:NSAllowsArbitraryLoads value:YES

2,将xcode7的ios sdk改为ios9以下


经过测试 所有通过NSURLConnection发送的请求都会被强制使用https

ASIHTTPRequest库不会受到影响 因为它底层是对CFNetwork的封装。

需要注意的是 以上解决方法目前尚不清楚苹果会不会拒绝上架,有条件的最好尽快改为https.

问题六 企业证书

使用企业证书打包的app 第一次安装时不会主动提示 信任/不信任

需要开发者到 设置->通用->描述文件->企业级应用 信任该证书

问题7 directory not found for option问题

问题原因:Xcode7将framworks位置改变了。

解决方法:

点击项目,选择 Targets->build setting

找到 Frameworks Search Path 或者 Library Search Paths

删除$(SDKROOT)/Developer/Library/Frameworks,

或者使用$(PLATFORM_DIR)/Developer/Library/Frameworks替换


问题8 定位

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {

//[_locationManager requestWhenInUseAuthorization];//?只在前台开启定位

[_locationManager requestAlwaysAuthorization];//?在后台也可定位

}

// iOS9新特性:将允许出现这种场景:同一app中多个location manager:一些只能在前台定位,另一些可在后台定位(并可随时禁止其后台定位)。

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {

_locationManager.allowsBackgroundLocationUpdates = YES;

}

问题 :微信库64位的问题

xcode 7 的动态库后缀名改了,这下子旧的项目也要重新替换。

这里有一篇文章是关于ios 微信的用法和配置 可以参考一下

不过 64 位的问题 也随之而来,如果不加入libc++.dylib后就会报错 编译不过

所以在微信引入库里面,需要加入

libsqlite3.0.dylib

libz.dylib

SystemConfiguration.framework

libc++.dylib (如果编译错了,加上这个库进去。)

注意:xcode 7 变了后缀


问题 二进制库不支持bitcode

在 xcode 7 项目 中 build Settings 搜索这个字,默认情况是YES ,不支持就改成No 。


今天微信编译的时候也报相关的错,这一点真是让人纠结。xcode 设置总是多。有时候很难理解。只好一点点记录。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 很可能你的应用是与一个支持HTTPS传输数据的服务器交互,但是并没有使用TLS 1.2或更高。在这种情况下,你定义...
    Www刘阅读 3,137评论 0 5
  • 董培杰 标签:desclasslogcomhttp使用si代码it 一、iOS9 bitcode 首先最大的问题就...
    toplee阅读 3,399评论 1 4
  • 《满地落花,半是寂寞半离殇》(外一) 春天正繁茂,青春正盛开, 玉兰花却悄悄地落了, 落了一夜, 落了一地。 花开...
    不语不问阅读 201评论 3 2
  • 今天下班后,我和孩爸一起去孩姨妈家接他!路上下起了雨,真开心! 应孩子的要求,带他来吃自助餐!我一趟趟的去拿着家人...
    亲子园阅读 242评论 0 1
  • 爱情,在我看来,一个最需要感觉不需要理性的开始,一个需要理性和感觉并存的过程,和一个不要因为精神层面而分手的结果。
    Zzliki阅读 367评论 0 0