Apple的iMessage模板或添加现有应用程序的扩展程序有什么区别?

时间:2016-07-20 15:29:22

标签: iphone ios-app-extension ios10 imessage

我注意到有关为iOS 10创建消息应用程序的不同。

如果您在新项目的模板上使用iMessage Application选项创建新项目,Xcode将创建两个目标,一个应用和一个扩展。

enter image description here

但该项目无法运行。

enter image description here

(见第二张图片,底部的目标选择器只有一个选项,目标是扩展名)。

当你创建一个普通的应用程序,比如单个视图应用程序,然后添加一个iMessage类型的应用程序扩展的目标时,你将有两个目标,即应用程序和扩展程序。

我的问题是:

Xcode iMessage的模板实际上只是创建了一个扩展,对吧?不是应用加一个扩展,对吗?

如果这是真的,为什么在天堂名称是Xcode创建应用目标?使用扩展程序.app编译并显示在产品部分的应用程序目标的目的是什么,如果它实际上不是应用程序并且永远不会运行?

或者实际上扩展就像一个"遥控器"运行应用程序上的代码?这是混乱的,因为我错误地将大量内容拖到了项目中,并标记了两个目标以使它们最终增加一倍,因为资产被复制到两个目标。

最后一个问题是:什么将提交给Apple,只是延期或两者?

2 个答案:

答案 0 :(得分:4)

只是为了澄清 - 使用模板创建的iMessage扩展程序不会显示在主屏幕上。它们仅出现在“消息”应用中。如果您使用Xcode中的“添加目标”菜单将iMessage扩展程序添加到现有应用程序,则会将扩展程序嵌入到主屏幕上显示的主机应用程序中。

据我所知,“应用目标”的工作实际上只是坐在那里并保留您的产品名称。在Beta 1中,我相信目标甚至没有构建设置。截至目前,它已经建立了设置但没有构建阶段,我猜它会保持这种状态。

但是,它确实出现在构建后的Products文件夹中,这让我觉得它会以某种方式提交到带有扩展名的应用程序商店。无论如何,如果您确保您的文件“目标成员资格”仅设置为扩展名,则应避免任何不必要的大小增加。

答案 1 :(得分:1)

我的猜测是让整个事情保持一致。我的意思是当你做其他扩展(键盘,小部件等)时,这必须附带一个应用程序。这里的情况有点复杂,我们可以做一个自己运行的iMessage应用程序,或者作为现有应用程序的扩展...所以当他们开发SDK时他们必须保持两种方式,但这只是猜测:) 此外,我非常确定在将iMessage应用程序提交到商店时,主要目标将与它一起使用,就像所有其他实际扩展一样。