在iphone应用程序中实现应用程序细化

我的iOS应用程序的大小是在应用程序商店相当大。 我怎样才能降低实现应用程序细化,使应用程序的大小降低。

Note : –

  1. 我已经在使用Images.xcassets分别放置x / 2x / 3x图像。
  2. 我也读了这个苹果文档,并照顾优化级别的构build设置。
  3. 我也使用一个8位的PNG,而不是一个32位的PNG。

应用程序切片目前不工作,直到另行通知。 减less应用程序大小的唯一方法是减less包含在.ipa中的资源数量。

如果您的应用程序有意义,则可以尝试使用按需资源 。

从昨天开始search应用程序,位代码和按需应用程序资源,现在我debugging所有这些事情,并借助我的示例项目来分享我从漂亮的苹果文档中获得的知识。

应用程序细化概念涵盖了位代码和按需资源。 我将在下面详细讨论按需资源:

iOS中的按需资源: –它在需要时访问images / videos / .h / .m / swift文件( Yes, on-demand resouring include source code files also )。

  • 转到您的目标中的Resource tags设置。
  • 创build一个新的Tag 。 它将出现在“仅下载”按需下。
  • 您可以在各种标签下添加.h,.m,.xassest,.png等。 您也可以通过在文件检查器中select像这样的单个文件来分配标签。

现在来编码部分( 我最喜欢的网站 ): –

 NSBundleResourceRequest *resourceRequest; #pragma mark - On demand resource -(void)getOnDemandResource{ NSSet *setOfTag = [NSSet setWithObjects:@"chair", nil]; resourceRequest = [[NSBundleResourceRequest alloc]initWithTags:setOfTag]; [resourceRequest conditionallyBeginAccessingResourcesWithCompletionHandler:^(BOOL resourcesAvailable) { if (!resourcesAvailable) { // resourceRequest.loadingPriority = 1;//set the downloading priority (0 - 1) , NSBundleResourceRequestLoadingPriorityUrgent [resourceRequest beginAccessingResourcesWithCompletionHandler:^(NSError * _Nullable error) { if (error) { UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Error" message:error.debugDescription preferredStyle:UIAlertControllerStyleAlert]; [self presentViewController:alert animated:YES completion:nil]; }else{ //// The associated resources are loaded } }]; }else{ // The associated resources are available } }]; } 

在不使用时结束访问随需应变资源(通常当游戏级别改变时)

 #pragma mark - Remove access to on demand -(void)endAccessToOnDemandResource{ [resourceRequest endAccessingResources]; } 

NOTE:-不要忘记在构build设置中启用On_Demand_Resources 。

 EXAMPLE PROJECT:- I create a sample project and uploaded here:- [http://www.dropbox.com/s/edi5zj68a4wuguh/WebOnTab.zip?dl=0][6] 

请不要在这个项目中自动布局。 我的主要重点是需求资源/应用程序的东西。

总结: –因此,我们可以通过使用上述技术on-demand resourcing来实现app thinning 。 还请看官方文档 ,这些文档还介绍了tracking progress ,resourceRequests( NSBundleResourceRequest )的priorities

据我了解的应用程序稀释,这一切都由苹果完成。 它看什么是目标设备,所需的图像和东西将自动提供给用户。

如果你想得到更薄的应用程序,也许重构是你应该看的主题。