文章目录
  1. 1. 前言在这
  2. 2. Slicing(切片) (iOS, tvOS)
  3. 3. Bitcode(字节码)
  4. 4. On-Demand(响应式) Resources (iOS, tvOS)
  5. 5. 原文出处

前言在这

针对于iOS,TVOS和watchOS设备上APP的安装和下载问题,通过削减APP提交下载到特有设备的容量,使你的app适配大部分设备,占用更少的存储空间,并适应你的更新需求.苹果公司推出了一种下载速度快,空间大,内容更好的用户体验手段,就是App Thinning 技术.

This chapter describes the three components of app thinning: slicing, bitcode, and on-demand resources

Slicing(切片) (iOS, tvOS)

Scling技术是对不同终端设备下创建和传递的app bundle的变量的一种方式.一个变量体只包含一种终端设备所需要的执行架构和资源文件.你可以继续开发和上传完整版的app到iTunes Connect . app store 将会根据你的设备创建和传递不同的变量.图片资源也会根据他们的解决方案和设备家族来剪裁图片.GPU资源也会根据你的设备容量进行裁剪.对于tvOS apps ,在iOS和tvOStargets 目录中被共享的assets也会被剪裁 较大的app icons也会移除掉.
xcode模拟器在你看法创建本地测试版本是也会slicing.当你build run 你的app 在你设备上时,xcode也会slicing.当你创建一个存档,Xcode包括应用程序的完整版,但允许你从存档中输出变体版本。

注意: Sliced apps are supported on devices running 9.0 and later; otherwise, the store delivers universal apps to customers.

slicing在你执行正常开发和发布的工作流,通常进行如下:

  • 1.在xcode中,针对于特有的设备在asset的图片目录中提供多重解决方案.但是你必须使用asset catalog存储资源 这样才会被sliced.
  • 2.创建并运行在你的虚拟机或者设备上.xcode将会创建一个版本,针对你的测试设备,提高你的测试创建时间,允许你本地化测试.
  • 3.为你选择的设备创建一个你的app存档.测试你输出的所有版本提前发现问题.
  • 4.上传你的app到iTunes Connect.app store 将会根据不同的归档文件创建多个版本.版本的数量是根据xcode工程中的规定的框架和资源来确定的.
  • 5.在iTunes中,发布一个抢先版为你指定的测试者.测试者可以用TestFlight(蒲公英)安装抢先版到支持的设备上.蒲公英将会下载一个支持的版本到测试者的设备上.
    注意:在你发布之前,邀请一些测试者,如果你邀请了一些外部测试者,那么这些外部测试者在下载之前必须等到Beta App Review 的批准.
  • 6.在iTunes中,发布你的app.用户安装app,商店就会针对于他们的设备为之提供相应的下载版本.

Bitcode(字节码)

Bitcode是一种编译文件的中间产物.当你上传app到iTunes时 , 你的app将会包含编译连接到app store 的bitcode.包含bitcode的app,你不需要重新提交一个新的版本苹果公司重新优化你的app的二进制文件.

Xcode默认你创建时隐藏了这种集成,因此他们是不可读的.也只有你选择了这种特性,在你上传到iTunes时,苹果才会收到这种信号进一步优化你的应用.你也必须包含这种标志来接受苹果给出的crash报告.

注意:对于iOS来说,bitcode是默认的,也可以选择.对于watchOS和tvOS应用,bitcode是必须的.如果你提供bitcode,你app的bundle中的所有应用和框架都必须包含bitcode.

On-Demand(响应式) Resources (iOS, tvOS)

On-Demand Resources就好比是:图片/声音 你可以标记关键字和请求的通过tag值.苹果服务器上将为你提供存储主机资源和管理下载的服务.On-Demand(请求式) Resources 能够提高下载速度,减小 app体积,提供瞬时安装的快感.比如,一个游戏app可能被分为游戏级别的资源,而只有你在提前测试app时,才能到达这个级别高度的请求.类似的,你的app可能在用户使用内购的时候才会请求ln-APP Purchase 资源.
当他们的不在使用或者硬盘空间比较少的时候,操作系统就会清除on-demand resources.如果你你在store外进行测试和发布,你就不得不自己提供on-demand resources功能的服务器.值得注意的是,可执行的on-demand resources 是不支持的.正如Slicing(iOS,tvOS)store 也会裁剪on-demand resources,来更快提高用户体验.
对于用户想而易见,当用户探究app的新功能时就必须提供新的资源,on-demand resources 是就会在后台工作的.

为了在你的app中使用on-demand resources,请阅读On-Demand Resources GuideNSBundleResourceRequest Class Reference.

原文出处

文章目录
  1. 1. 前言在这
  2. 2. Slicing(切片) (iOS, tvOS)
  3. 3. Bitcode(字节码)
  4. 4. On-Demand(响应式) Resources (iOS, tvOS)
  5. 5. 原文出处