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

作者: 饱醉豚吔屎啦你 | 来源:发表于2015-09-25 14:59 被阅读1170次

    截至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 设置总是多。有时候很难理解。只好一点点记录。

    相关文章

      网友评论

        本文标题:[iOS9开发]问题及解决方法

        本文链接:https://www.haomeiwen.com/subject/jeqwcttx.html