使用 Xcode 8 为 iMessage 创建表情包插件

作者:SIMON NG,原文链接,原文日期:2016-06-20
译者:小袋子;校对:Cee;定稿:Channe

WWDC 2016 上最重磅的消息之一就是在 iOS 10 中引入了 Message 框架。开发者现在可以为苹果内置的 Messages 应用开发扩展啦。通过开发一个应用扩展,你可以让用户跟应用在 Messages 应用中交互。例如,你可以开发一个 Message Sticker Extension 允许用户跟朋友交流时发送表情贴纸。如果你已经开发了一个图片编辑的应用,那么你可以开发一个扩展,这样用户就可以在 Messages 应用内部编辑图片了。扩展的支持为很多应用开发者提供了大量的机会。苹果甚至为 iMessage 引入了 App Store,所以你可以在商店内售卖专门为 iMessage 开发的应用扩展。

为 Messages 开发一个应用扩展,你需要使用新的 Message 框架。这个框架支持以下两种类型的扩展:

  • Sticker packs(注:表情包)
  • iMessage apps

在这个教程里,我将会教你如何通过这个框架开发一个 sticker pack。而之后,我们将会稍微深入地了解下如何开发一个 iMessage app。

无论你要开发什么样类型的扩展,首先你需要使用 Xcode 8。在我写这篇文章的时候,Xcode 8 还是测试版。如果你还没安装工具,可以从 这里下载 并安装到你的电脑上。即使你已经安装了 Xcode 7,你仍然可以保留当前的版本并且安装新的 Xcode。

在继续下一步之前,我必须夸一下苹果,因为他让 sticker pack 的开发非常简单。即使你不会任何 Swift 编程经验,你也能够创建你自己的 sticker pack,因为你不需要写一行代码。跟着这篇教程学会如何创建一个 Sticker Extension。

创建一个 Sticker Pack 项目

首先,打开 Xcode 8 然后创建一个新的项目。Xcode 8 已经为 Message Extension 准备了几个项目模板。如果是 sticker pack,选择 iOS > Application > Sticker Pack Application.

然后,输入项目名称。在这个项目里,我使用 CuteSticker ,但是你可以使用任何你喜欢的名称。

为 Sticker Pack 添加图片

一旦你创建了项目,你将会在 project navigator 里看到两个文件。点击 Stickers.xcstickers 然后选择 Sticker Pack 文件夹,这是存放图片文件的地方。如果你想做 demo 你可以下载这个图片包,或者使用你自己的图片。但是请注意图片必须是 PNG(首选)、APNG、GIF 或者 JPG 格式,并且大小不超过 500KB。

假设你已经下载了我们的图片包,在 Finder 里面解压。然后选择所有的图片,并将他们拖到 Sticker Pack 文件夹。

声明:这个图片表是由 pixeden.com 提供的。

此外,你还可以随意地选择 sticker 的尺寸。选择 Sticker Pack 文件夹,然后选择 Attributes inspector。sticker 的默认尺寸为 Medium,你可以改为 SmallLarge。在这个 demo 里面,我只是用了默认设置。

添加应用图标

最后,你的表情包必须有一个应用图片。同样滴,由于是 demo,我已经准备了样例应用图标,你可以在这里下载。如果你想要创建自己的图片,确保你准备好了不同尺寸的图标:

  • Messages App Store:1024×768 points (@1x)
  • Messages:27×20 points (@1x, @2x, @3x)
  • Messages:32×24 points (@1x, @2x, @3x)
  • iPhone/iPad 设定:29×29 points (@1x, @2x, @3x)
  • Messages(iPhone):60×45 points (@2x, @3x)
  • Messages(iPad):67×50 points (@1x, @2x)
  • Message(iPad Pro):74×55 points (@2x)

为了简化图片准备工作,你可以从苹果官网下载 iMessage App Icon 模板

在你下载完我们的 演示应用图标包 后,解压并将所有图标拖到 iMessage App Icon 下。

测试 Sticker Pack

好了!现在你已经为 Message 创建了一个表情包了,是时候来测试了。你不需要一台 iOS 10 设备去测试,Xcode 提供了内置的模拟器来测试 iMessage 应用扩展。选择一个模拟器设备(如:iPhone 6)然后点击 Run 按钮开始测试。

由于 Sticker pack 是一个应用扩展,所以你可以把它当做一个独立的应用,并且必须运行在 Message 应用里面。所以当 Xcode 询问你选择哪个应用来运行时,选择 Message 应用。然后点击 Run。

当模拟器登录完了, Message 将会直接打开。点击扩展按钮,你可以找到你的 sticker pack。如果你点击左下菜单,将会显示你的 Sticker pack,当然这也是内置的。

在模拟器里,Message 有两个模拟用户,选择一个表情发送,然后回到 messageuser2,你可以看到 messageuser1 发送的表情。

使用动画图片来自增强 Sticker Pack

你不仅仅可以在 Sticker Pack 里面绑定静态图片,并且可以让你简单地添加动态图片到表情包里。如果你已经有一些 像这样的 GIF 或者 APNG 图,简单地添加图片到表情包里。Xcode 将会识别并展示动画。

创建动图的另外一个替代方案是创建一个 sticker 序列。回到你的 sticker pack,在任意空白处右击,选择 Add Assets > New Sticker Sequence。这个将会创建一个让你添加图片队列的 sticker 序列。

作为示例,你可以下载 这个图片包。解压并添加到 sticker 序列。Xcode 允许你在 sticker pack 的右边预览动画。

总结

你已经学会了如何在 Message 应用内使用 Xcode 8 创建一个应用扩展。正如你所见,你不需要写哪怕一行代码去创建一个 sticker pack。你仅需要做的就是准备好图片(动态或者静态),然后就可以开始制作表情包啦。

同时,Xcode 8 和 iOS 10 仍然是测试版。你还不能将你的 sticker pack 上传到 Message App Store。但是这是你开始创建属于你自己的表情包的绝佳时机。当 iOS 10 正式发布好了,你就掌握了先机。

Sticker pack 只是 iMessage 应用的一种扩展。在下一篇的教程里,我们将会学习如何去创建一种更复杂的 Message 扩展。敬请关注。

作为参考,你可以从这里下载 完整的 Xcode 项目

本文由 SwiftGG 翻译组翻译,已经获得作者翻译授权,最新文章请访问 http://swift.gg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容