SDK 集成

注意:App Extension SDK 依赖于 啄木鸟 iOS SDK 1.0.8 及以上版本
提供两种集成 SDK 方式集成
通过 CocoaPods 集成
手动集成

通过 CocoaPods 集成方式

在工程的 Podfile 里对应的 Extension Target 中添加以下代码

  1. pod 'WPKAppExt'

示例:

  1. target 'ExtensionPodTest Today Extension' do
  2. pod 'WPKAppExt', :podspec =>'http://image.uc.cn/s/uae/g/3w/woodpecker-sdk/WPKMobi/1.0.8/WPKAppExt.podspec.json'
  3. end

保存并运行pod install,然后用后缀为.xcworkspace的文件打开工程
关于CocoaPods的更多信息请查看 CocoaPods官方网站

手动集成方式

  • 下载并解压 iOS App Extension SDK
  • 拖拽WPKAppExt.framework文件到Xcode工程内,如下图

image.png

  • 勾选 Copy items if needed 选项
  • 如有多个Extension Targets ,则一一进行勾选

初始化SDK

导入头文件

在工程的InterfaceController.h中导入头文件

#import <WPKAppExt/WPKAppExtSetup.h>

如果是其它类型的 Extension,请在入口的 ViewController.h 中导入
如果是 Swift 工程,请在对应的 bridging-header.h 中导入

初始化 Extension SDK

Today Extension,Share Extension 等,请在对应的ViewController.m的- (instancetype)initWithCoder方法中初始化, 暂时不支持Watch Extension

如果 Xcode 初始模板没有此方法,直接复制以下代码粘贴即可

  • Objective-C ```objectivec
  • (instancetype)initWithCoder:(NSCoder *)aDecoder {

    1. self = [super initWithCoder:aDecoder];
    2. if (self) {
    3. [WPKAppExtSetup startWithApplicationGroupIdentifier:@"此处替换为您的 App Group Identifier"];
    4. }
    5. return self;

    } ```

  • Swift

    1. required init(coder aDecoder: NSCoder) {
    2. WPKAppExtSetup.startWithApplicationGroupIdentifier("此处替换为您的 App Group Identifier")
    3. super.init(coder: aDecoder)
    4. }

宿主App 的初始化设置

需要使用带applicationGroupIdentifier参数的start方法, 并传入你设置的App Group Identifier

  1. [WPKSetup startWithAppName:@"xxxx" applicationGroupIdentifier:@"此处替换为您的 App Group Identifier"];