文档章节

iOS Today Extension开发分享

王石头
 王石头
发布于 2016/07/22 20:46
字数 657
阅读 66
收藏 0

最近在做Today Extension,遇到一些需要注意的地方,把它们分享出来,供大家参考,希望可以帮助到其他人。这篇文章主要记录开发过程中需要注意的地方,在实现方面没有过多的讲述,需要的同学可以参考喵神的博客,下面附有博客地址。

参考内容:

参考资料主要有两个,一是苹果的官方说明文档,建议大家详细阅读;二是喵神的博客,在实现方面说的比较详细,下面是资料的地址:

https://developer.apple.com/library/prerelease/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionOverview.html#//apple_ref/doc/uid/TP40014214-CH2-SW2

https://onevcat.com/2014/08/notification-today-widget/

 

使用新建target的方式创建app extension,在info.plist中,使用 NSExtensionPointIdentifier key来标识 extension 类型。发布时不能直接将app extension上传至app store,只能将其的 containing app 上传至app store。

 

因为 app extension 与 containing app 是两个进程,如需共享数据,需要在Capabilities中开启 APP Groups 权限。

 

扩展中不能使用的API:

  1. sharedApplication 相关对象方法。
  2. 被标记为NS_EXTENSION_UNAVAILABLE或与该宏定义相似的对象、方法以及不可使用的framework(HealthKit、EventKit等)。
  3. 访问相机与麦克风。
  4. 执行长时间的后台任务。
  5. 使用AirDrop接受数据(可以发送数据)。

 

发布审核通过需注意事项(不遵守审核会被拒绝):

  1. app extension target 的 Architectures build settings 必须包含 arm64(iOS) 或者 x86_64(OS X)。
  2. app extension的containing app必须支持64-bit。
  3. 必须同时支持iPhone、iPad。
  4. 签名时必须使用相同的证书与描述文件。
  5. containing app必须向用户提供功能,不能够只包含扩展。
  6. extension引用的frameworks必须支持64位。
  7. Always choose “Frameworks” as your Copy Files build phase destination. If you instead choose the “SharedFramework” destination, the App Store will reject your submission.("copy file"中的"destination"需选择"Frameworks")

 

开发实践注意事项:

  1. 如果需要共用文件,可在project中新建framework类型target,如果iOS版本低于8.0可将framework设置为静态库,并在General中勾选“allow app extension APIs only”。
  2. 需要从today extension打开containing app时,调用[self extensionContext]方法获取NSExtensionContext对象,并调用NSExtensionContext对象的openURL:completionHandler:方法唤起containing app。

© 著作权归作者所有

共有 人打赏支持
王石头
粉丝 8
博文 24
码字总数 26001
作品 0
石景山
程序员
Apple WatchKit 初探

Apple WatchKit 初探 2014/11/20 | 分类: IOS, 开发 | 0 条评论 | 标签: APPLE, APPLE WATCH 分享到:1 玩儿转Swift 玩转Bootstrap(基础) jQuery源码解析(架构与依赖模块) less即学即用...

andyhe91
2015/03/21
0
1
Extensions: Sharing Code with an Embedded FM

iOS 8 Extensions: Sharing Code with an Embedded Framework Note: Due to the NDA, this tutorial won’t include any screenshots from Xcode 6. When iOS 8 is released, I will update......

小春0618
2015/08/01
0
0
简单介绍一个开发***的三方库吧,NEKit(swift)

因为最近上架了一个SkimTumblog需要链接*,所以对的需求很大。于是就想自己做一个**的iOS客户端。于是就开始Google,找到了以为大神开发的三方库,目前为止1.2k个star,支持iOS和macOS,功能...

笙语亦凉
06/21
0
0
10个优秀Objective-C和iOS开发在线视频教程

如果你自己开发iOS应用,你肯定会发现网上有很多资源。学习编程的一个最好的方法就是自己写代码,而开始写代码的最快的方式就是看其他人怎么写。我们从海量视频和学习网站中整理出了我们认为...

mingxun
2014/05/09
0
0
又拍云Prism CDN 超低价 低延时 超强兼容的P2P-CDN

又拍云Prism CDN 超低价 低延时 超强兼容的P2P-CDN 2018-05-15 10:26编辑: 枣泥布丁分类:业界动态来源:https://www.upyun.com/products CDN又拍云 招聘信息: C++工程师 Cocos2d-x游戏客户...

枣泥布丁
05/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

WinDbg

参考来自:http://www.cnit.net.cn/?id=225 SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols ctrl + d to open dump_file Microsoft (R) Windows Debugger Version 6.12.0002.633......

xueyuse0012
26分钟前
2
0
OSChina 周五乱弹 —— 想不想把92年的萝莉退货

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @罗马的王:分享松澤由美的单曲《地球ぎ》 很久没看圣斗士星矢了 《地球ぎ》- 松澤由美 手机党少年们想听歌,请使劲儿戳(这里) @开源中国首...

小小编辑
53分钟前
10
1
springBoot条件配置

本篇介绍下,如何通过springboot的条件配置,控制Bean的创建 介绍下开发环境 JDK版本1.8 springboot版本是1.5.2 开发工具为 intellij idea(2018.2) 开发环境为 15款MacBook Pro 前言 很多时候,...

贺小五
今天
1
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
昨天
1
0
谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linux-tao
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部