2017-04-07 65 views
5

我们的应用程序达到大约49MB,我们不是一半。所以肯定会超过50MB的限制。我有几个问题如下。逼近大小限制 - 手表应用程序的大小(50MB限制令人头疼)

1)WatchOS中的按需资源是否可能?

2)我的资源(图像,自定义字体)使2副本每一个是手表应用程序和其他手表扩展名。如何解决这个问题?

3)Swift核心和其他快速框架消耗约28MB的空间。有什么办法可以禁用它吗?

为watchOS4

编辑(PS,我们有位代码无效。):

以前我们的应用程序大小为44.3 MB,但是当我们从xcode9大小产生IPA上升至54.5。

回答

1

你绝对可以只包括资源无论是在钟表应用或手表扩展,不能同时节省空间。对于故事板中使用的资源或WatchKit方法中名称引用的资源,例如WKInterfaceImagesetImageNamed(_:)方法,应将其存储在手表应用程序本身中。对于按路径或UIImage方法(如init?(named:))加载的任何资源,您都需要将它们放入您的WatchKit扩展。

+0

是可能可行的,但如果我的动画图像,然后我需要在这两个目标中添加这些图像。 –

+0

为什么你需要将它们添加到两个目标?您可以在WatchKit扩展程序或应用程序包中使用动画图像;如果你需要在代码中使用它们,那么你可以在每次需要使用代码时简单地使用它们。 –

0

要回答你的第一个问题,yes按需资源是watchOS的可用选项。请参阅herehere

此外,上面的第一个链接描述了“切片”,它允许您指定资源到目标设备,从而减少您的整体应用程序占用空间。

要解决您的第三个问题,请转到扩展的项目设置,然后将Always Embed Swift标准库设置为“否”。

另外,从表扩建项目中删除Newtonsoft.Json库,如果存在的话

1

以下几点可以帮助减少大小:

1)尽量为使用SWIFT或目标C

2)无论是在手表新增资产或观看的扩展,根据需要。

3)使能位码

4)去扩展的项目设置,并设置总是嵌入雨燕标准库没有

更新WatchOsOs4:

我们调查了watchos4的尺寸增加。最后,我们发现消耗记忆的dylib。

libSwiftCode在watchos3 16.1mb现在是23.1MB

libSwiftFoundation在watchos3 6.2MB现在是9。2MB

注:

从watchOS4大小增加了25MB,所以现在看应用程序的大小限制是75MB,而不是老50MB