2

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

Note:-

  1. 我已经在使用 Images.xcassets 分别放置 x/2x/3x 图像。
  2. 我还阅读了这个苹果文档并负责优化级别的构建设置。
  3. 我还使用 8 位 PNG 而不是 32 位 PNG。
4

3 回答 3

1

应用切片目前无法正常工作,直至另行通知。目前减少应用程序大小的唯一方法是减少 .ipa 中包含的资产数量。

如果它们对您的应用有意义,您可以尝试使用On Demand Resources 。

于 2015-10-13T10:45:31.210 回答
1

从昨天开始搜索应用程序精简、位代码和按需应用程序资源,现在我调试所有这些东西并分享我在示例项目的帮助下从漂亮的苹果文档中获得的知识。

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

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

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

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

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:-不要忘记在构建设置中启用 On_Demand_Resources

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

请不要为这个项目中的自动布局而烦恼。我的主要关注点是需求资源/应用程序。

总结:-因此我们可以app thinning通过on-demand resourcing使用上述技术来实现。另请查看官方文档tracking progress,该文档还描述了关于prioritiesresourceRequests( NSBundleResourceRequest) 的内容。

于 2015-10-15T10:21:56.760 回答
0

据我了解App瘦身,这一切都是由Apple完成的。它查看目标设备是什么,所需的图像和内容将自动提供给用户。

如果您想获得更轻薄的应用程序,也许重构是您应该关注的主题。

于 2015-10-13T10:45:23.477 回答