[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 的动态库后缀名改了,这下子旧的项目也要重新替换。
不过 64 位的问题 也随之而来,如果不加入libc++.dylib后就会报错 编译不过
所以在微信引入库里面,需要加入
libsqlite3.0.dylib
libz.dylib
SystemConfiguration.framework
libc++.dylib (如果编译错了,加上这个库进去。)
注意:xcode 7 变了后缀
问题 二进制库不支持bitcode
在 xcode 7 项目 中 build Settings 搜索这个字,默认情况是YES ,不支持就改成No 。
今天微信编译的时候也报相关的错,这一点真是让人纠结。xcode 设置总是多。有时候很难理解。只好一点点记录。