1.创建action extension和相关参数设置
1.1新建action的target
1.2 设置action的Bundle ID
将这个target的General > Bundle identifier 名称改为:com.XXXX.XXXXAction, 其中com.XXXX为App的bundle ID.
1.3 设置支持的框架
一个应用程序扩展在Architectures设置中必须要包含arm64的架构,否则在上传App Store时会被拒绝。创建完一个应用扩展后,你可以在Xcode的“Standard architectures”设置选项中设置arm64架构。如果你的包含扩展的应用程序使用了一些嵌入框架,那么你的应用程序也必须要包含arm64架构,否则上传App Store时也会被拒绝。
Build settings > Valid Architectures : arm64 armv7 armv7s
设置iOS Development Target : iOS8.0
1.4 配置Action Extension
- 默认Action Extension中的布局使用StoryBoard,如果不想使用StoryBoard布局将Info.plist中的如下配置:
<key>NSExtensionMainStoryboard</key> <string>MainInterface</string>
改为:
<key>NSExtensionPrincipalClass</key>
<string>ActionViewController</string>
说明:插件在UI上以UIViewController模式存在,被parentViewController(Host App)以模态窗口形式弹出(present as modal viewController)。插件工程在Info.plist的NSExtension中通过NSExtensionMainStoryboard指定UI视图入口。当然,如果不想使用storyboard,也可以使用NSExtensionPrincipalClass指定自定义UIViewController子类名(也可以封装到UINavigationController)。
- NSExtensionActivationRule定义了当前的扩展支持的数据类型及数据项个数,例如设置只支持图片格式和视频格式的数据,并且最多不超过10张图片和1个视频。
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
<string>1</string>
- NSExtensionJavaScriptPreprocessingFile用于配置与脚本交互的JS脚本文件的名字。为了告知Safari你的应用扩展中包含一个JavaScript