iOS.AppThinning-iOS9-new-feature-for-app-thinning-bitcode-odr-slicing

Bitcode

0. Introduction to Bitcode

1. Build static library or framework via Xcode 7, while user build application using Xcode 7.

"The Xcode 7 build system defaults include enabling the Enable Bitcode build setting, but standard Debug

or Release builds do not include the full bitcode content in the built framework and library products.

To build framework and library products for distribution and ensure that the full bitcode content is included,

framework and library providers must:

  • Ensure that the Enable Bitcode build setting is correct (ENABLE_BITCODE=YES).
  • Perform either an Archive build or an Install build to produce framework and library products for distribution." Ref[3.6]

2. Build static library or framework via Xcode 7, while user build application using Xcode 6.

"Framework and library providers need to include bitcode for Xcode 7 development, and Xcode 7 generates bitcode by default.

However, bitcode-enabled framework and library products do not work well with Xcode 6. If you still need to support Xcode 6 development,

you must produce an additional version of your products without bitcode.

To build a library without bitcode, either use Xcode 7 with the build setting Enable Bitcode disabled (ENABLE_BITCODE=NO)

or use Xcode 6."

3. How to check whether the static library is built with bitcode enable?

"otool -l (.o or .a file)

and look for "__bitcode" section" Ref[3.7]

1 $ otool -l libXX.a | grep __bitcode

Reference

1. Here‘s how iOS 9 actually saves space on your iOS device

http://appadvice.com/appnn/2015/06/heres-how-ios-9-actually-saves-space-on-your-ios-device

2. “App thinning” will be a major boon for 8GB and 16GB iPhones and iPads (ToRead)

http://arstechnica.com/apple/2015/06/app-thinning-will-be-a-major-boon-for-8gb-and-16gb-iphones-and-ipads/

3. Bit Code

3.1 ATS and Bitcode in iOS 9

https://developer.ibm.com/mobilefirstplatform/2015/09/09/ats-and-bitcode-in-ios9/

3.2 Apple’s Bitcode Telegraphs Future CPU Plans  (ToRead)

https://medium.com/@InertialLemon/apple-s-bitcode-telegraphs-future-cpu-plans-a7b90d326228

3.3 Bit Code in <<App Distribution Guide>>

https://developer.apple.com/library/prerelease/watchos/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

3.4 LLVM Bitcode File Format

http://llvm.org/docs/BitCodeFormat.html

3.5 Apple’s biggest developer news at WWDC that nobody’s talking about: Bitcode

http://thenextweb.com/apple/2015/06/17/apples-biggest-developer-news-at-wwdc-that-nobodys-talking-about-bitcode/

3.6 Xcode Release Notes (Xcode 7)

Bitcode

https://developer.apple.com/library/watchos/releasenotes/DeveloperTools/RN-Xcode/Chapters/xc7_release_notes.html

3.7 How to check a static library is built contain bitcode?

http://stackoverflow.com/questions/32755775/how-to-check-a-static-library-is-built-contain-bitcode

时间: 2024-10-20 02:10:00

iOS.AppThinning-iOS9-new-feature-for-app-thinning-bitcode-odr-slicing的相关文章

iOS上传IPA时提示导入此构建版本时出错-errors occurred in the app thinning process

今天上传IPA时报错,提示导入此构建版本时出错-errors occurred in the app thinning process,本以为是误操作开启了bitcode,检查后发现并不是,修改了build号重新上传依然不起作用,看到网上有人说删除三方库的plist文件可以解决,但是也有人表示删除plist文件会导致程序无法运行,所以想起了bitcode刚推出时同样碰到过这个问题,我的解决办法: 找出三方库的info.plist文件 删除Executable file的value

App Thinning

App Thinning 由于项目中需要开启Bitcode编译,之前对Bitcode也有些误区,故整理了下相关知识,仅供参考,如有不对,还请指出. 当前 iOS App 的编译打包方式是把适配兼容多个设备的执行文件及资源文件合并一个文件,上传和下载的文件则包含了所有的这些文件,导致占用较多的存储空间. App Thinning是一个关于节省iOS设备存储空间的功能,它可以让iOS设备在安装.更新及运行App等场景中仅下载所需的资源,减少App的占用空间,从而节省设备的存储空间. 根据Apple官

IOS开发系列(6)App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app&#39;s Info.plist file.

在学习网络处理的过程,发现代码都没错,运行时却发生以下警告: 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. 问题分析: 应用程序采取了明文HTTP协议(http:/ /).而在iOS9 中,苹果引入了一项隐私

ios下微信浏览器如何唤醒app?app已上架应用宝

android下可以通过在应用宝微下载地址后面加参数&android_schema='应用schema'来实现,ios下如何实现? ios下微信浏览器如何唤醒app?app已上架应用宝 >> ios 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/ios/1010000008247218/ios下微信浏览器如何唤醒appapp已上架应用宝.html

ios9 升级后 企业版app plist无法安装

昨天apple推送了ios9, 公司的一些app是企业版的,平常通过 item-service 结果更改如下 plist可以了 itms-services://?action=download-manifest&url=https://hbacheus.oss-us-west-1.aliyuncs.com/huboche.plist <?xml version="1.0" encoding="UTF-8"?> <plist version=

记录在ios系统上,自研app,灰度环境遇到的一个vue页面dom节点已渲染,但是显示部分空白的情况

一.问题产生背景: 在ios系统上,自研app,灰度环境,进入到前端页面后,从不同入口进入到适配车型页面,部分页面显示正常,部分页面显示异常,而适配车型页面的代码逻辑仅仅是请求接口,获取到数据后进行for循环渲染而已 1.vue页面代码如下: 2.js代码如下(请求数据,有缓存先取缓存,没有取接口请求返回数据,直接赋值): 3.接口返回数据如下: 4.除了ios.自研app.灰度环境的某个入口外,其他各端,包括ios.自研app.灰度环境的大部分入口(进到适配车型页)正常如下: 5.ios.自研

iOS学习之旅10 ATS(App Transport Security)对HTTPS协议要求引起的问题

问题描述 编写以下代码获取网络某个资源的MIMEType 1 -(void)getMIMEType 2 { 3 //路径 4 NSURL *url = [NSURL URLWithString:@"https://www.baidu.com/img/bd_logo1.png"]; 5 //请求对象 6 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 7 NSOperationQueue *

iOS 适配iOS9

1.网络接口不支持https协议,在iOS9下 在iOS9下,系统默认会拦截对http协议接口的访问,因此无法获取http协议接口的数据. 解决方案(以下方法2选1): (1)暂时退回到http协议 具体方法: 在项目的info.plist中添加一个Key:NSAppTransportSecurity,类型为字典类型. 然后给它添加一个Key:NSAllowsArbitraryLoads,类型为Boolean类型,值为YES: 2016.01.06更新: 随着SDK版本的更新,这里需要以下更新.

ios9定位服务的app进入后台三分钟收不到经纬度,应用被挂起问题及解决方式

原来定位服务是10分钟收不到定位信息就挂起定位,如今变为最短3分钟,预计都是为了省电吧. 仅仅要你开启应用的后台定位,而且10分钟有一次定位,那么苹果就不会关闭你的线程.如今变成3分钟.若你的应用开启了后台定位,当最短3分钟(经过測试也可能大于3分钟小于等于10分钟)不定位,ios系统也会把你的应用挂起. 而高德地图ios sdk的ios9以上版本号后台定位开启方法变更,而高德导航库没有同步变更,导致使用老的地图库和高德导航地图库的用户定位服务不能实际开启,切换到后台3分钟(经过測试也可能大于3

iOS WKWebView ios9中不显示 与 设置UserAgent(用户代理)

项目运行在ios9上需要在info.plist文件中配置加入如下信息, App Transport Security Settings Allow Arbitrary Loads = YES <key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 设置 UserAgent(用户代理) // 注册代理