iOS 扩展实施

您可以使用 iOS 扩展帮助从 Apple Watch 应用程序 (WatchOS 1)、“今天”小组件、照片编辑小组件以及其他 iOS 扩展应用程序中收集使用情况数据。

新的 Adobe Experience Platform Mobile SDK 发行版本

正在寻找与 Adobe Experience Platform Mobile SDK 相关的信息和文档?请单击此处获取我们的最新文档。

在 2018 年 9 月,我们发布了一个新的 SDK 主要版本。这些新的 Adobe Experience Platform Mobile SDK 可通过 Experience Platform Launch 进行配置。

有关使用 iOS SDK 而不使用包装器的建议

重要

我们强烈建议您使用 iOS SDK,而不要使用包装器。

Apple 提供一组 API,允许 Watch 应用程序通过向容器应用程序发送请求并接收响应来与之通信。尽管您可以将跟踪数据作为词典从 Watch 应用程序发送到容器应用程序,然后在容器应用程序中调用任何跟踪方法来发送数据,但是这种解决方案存在局限性。

大多数情况下,当用户使用 Watch 应用程序时,容器应用程序将在后台运行,只有调用 TrackActionInBackgroundTrackLocationTrackBeacon 才是安全的。调用其他跟踪方法会干扰生命周期数据,因此您应该专门使用这三种方法,从 Watch 应用程序中发送数据。

即使这三种跟踪方法符合您的要求,仍请使用 iOS SDK,因为该适用于 Watch 应用程序的 SDK 包含除应用程序内消息传送之外的所有移动功能。

快速入门

重要

确保您的项目至少具有以下目标:

  • 一个包含应用程序的目标。
  • 一个扩展目标。

如果您正在使用 WatchKit 应用程序,您应该具备第三个目标。有关为 Apple Watch 开发的更多信息,请参阅为 Apple Watch 开发

配置容器应用程序

在您的 Xcode 项目中完成以下步骤:

  1. 将 AdobeMobileLibrary 文件夹拖动到您的项目中。

  2. 确保 ADBMobileConfig.json 文件是容器应用程序目标的成员。

  3. 在容器应用程序目标的​生成阶段​选项卡中,展开​将二进制文件与库关联​部分,然后添加以下库:

    • AdobeMobileLibrary.a
    • libsqlite3.dylib
    • SystemConfiguration.framework
  4. 打开容器应用程序目标的​功能​选项卡,启用​应用程序组,然后添加一个新的应用程序组(例如,group.com.adobe.testAp)。

  5. 与 Adobe Mobile 库进行任何交互之前,在应用程序委托的 application:didFinishLaunchingWithOptions 中设置该应用程序组:

    [ADBMobile 
          setAppGroup:@"group.com.adobe.testApp"];
    
  6. 确认您的应用程序在生成时没有出现意外错误。

配置扩展

  1. 确保 ADBMobileConfig.json 文件是扩展目标的成员。

  2. 在扩展目标的​生成阶段​选项卡中,展开​将二进制文件与库关联​部分,然后添加以下库:

    • AdobeMobileLibrary_Extension.a
    • libsqlite3.dylib
    • SystemConfiguration.framework
  3. 打开扩展目标的​功能​选项卡,启用​应用程序组,然后选择您在上面“配置容器应用程序”**​的步骤 4 中添加的应用程序组。

  4. 与 Adobe Mobile 库进行任何交互之前,在 InterfaceController 的 awakeWithContext: 中设置该应用程序组:

    [ADBMobile 
          setAppGroup:@"group.com.adobe.testApp"];
    
  5. 确认您的应用程序在生成时没有出现意外错误。

其他说明

请牢记以下信息:

  • 添加了一个额外的上下文数据值 a.RunMode,以指示数据是来自容器应用程序还是扩展:

    • a.RunMode = Application

      此值表示点击来自容器应用程序。

    • a.RunMode = Extension

      此值表示点击来自扩展。

  • 如果您从旧版 SDK 升级,则在启动容器应用程序后,Adobe 会将所有用户默认值和缓存的文件从容器应用程序的文件夹自动迁移到应用程序组的共享文件夹。

  • 如果容器应用程序从未启动过,将会丢弃来自扩展的点击。

  • 容器应用程序与扩展应用程序之间的版本号和内部版本号必须相同。

  • 在 iOS 扩展应用程序中不会触发生命周期调用。

在此页面上