将 MobileFirst Foundation SDK 添加到 iOS 应用程序

improve this page | report issue


概述

MobileFirst Foundation SDK 包含通过 CocoaPods 可用并且可添加到 Xcode 项目的 pod 集合。
pod 与核心函数和其他函数对应:

  • IBMMobileFirstPlatformFoundation - 实现客户机到服务器连接,并处理认证和安全方面、资源请求和其他必需的核心函数。
  • IBMMobileFirstPlatformFoundationJSONStore - 包含 JSONStore 框架。 有关更多信息,请查看针对 iOS 的 JSONStore 教程
  • IBMMobileFirstPlatformFoundationPush - 包含推送通知框架。 有关更多信息,请查看通知教程
  • IBMMobileFirstPlatformFoundationWatchOS - 包含对 Apple WatchOS 的支持。

在此教程中,了解如何使用 CocoaPods 将 MobileFirst 本机 SDK 添加到新的或现有的 iOS 应用程序。 您还可以了解如何配置 MobileFirst Server 以识别应用程序。

先决条件:

注:使用 XCode 8 的情况下在模拟器上运行 iOS 应用程序时必需密钥链共享功能。

跳转至:

添加 MobileFirst 本机 SDK

遵循下面的指示信息将 Mobile Foundation 本机 SDK 添加到新的或现有的 Xcode 项目,以将应用程序注册到 MobileFirst Server。

在您开始之前,确保 MobileFirst Server 正在运行。
如果使用本地安装的服务器:从命令行窗口,浏览至服务器的文件夹,然后运行命令:./run.sh

创建应用程序

创建 Xcode 项目或使用现有项目(Swift 或 Objective-C)。

添加 SDK

  1. 通过 CocoaPods 提供 Mobile Foundation 本机 SDK。
    • 如果您的开发环境中已安装有 CocoaPods,请跳至步骤 2。
    • 如果未安装 CocoaPods,将按照如下进行安装:
      • 打开命令行窗口并浏览至 Xcode 项目的根目录。
      • 运行命令:sudo gem install cocoapods,然后运行命令 pod setup注:这些命令可能需要几分钟完成。
  2. 运行命令:pod init。 这将创建 Podfile
  3. 使用您偏爱的代码编辑器打开 Podfile
    • 注释掉或删除文件的内容。
    • 添加以下行并保存更改:

      use_frameworks!
      
      platform :ios, 8.0
      target "Xcode-project-target" do
          pod 'IBMMobileFirstPlatformFoundation'
      end
      
      • Xcode-project-target 替换为 Xcode 项目目标的名称。
  4. 返回到命令行窗口,运行命令 pod install,然后运行命令 pod update。 这些命令将添加 Mobile Foundation 本机 SDK 文件、添加 mfpclient.plist 文件并生成 Pod 项目。
    注:这些命令可能需要几分钟完成。

    要点:从此时开始,使用 [ProjectName].xcworkspace 文件在 Xcode 中打开项目。 请使用 [ProjectName].xcodeproj 文件。 基于 CocoaPods 的项目将作为包含应用程序(可执行程序)和库(CocoaPods 管理器提取的所有项目依赖关系)的工作空间进行管理。

手动添加 MobileFirst 本机 SDK

您还可以手动添加 Mobile Foundation SDK:

要手动添加 Mobile Foundation SDK,请先通过 MobileFirst Operations Console → 下载中心 → SDK 选项卡下载 SDK .zip 文件。

  • 在您的 Xcode 项目中,将 Mobile Foundation 框架文件添加到您的项目。
    • 在 Project Explorer 中选择项目根图标。
    • 选择文件 → 添加文件,然后浏览至包含先前已下载框架文件的文件夹。
    • 单击选项按钮。
    • 选择根据需要复制项目为任何添加的文件夹创建组
      注:如果未选择根据需要复制项目选项,那么将不会复制框架文件,但会从其原始位置链接框架文件。
    • 选择主要项目(第一个选项)并选择应用程序目标。
    • 常规选项卡中,移除自动添加到已链接的框架和库的任何框架。
    • 必需:在嵌入式二进制文件中,添加以下框架:
      • IBMMobileFirstPlatformFoundation.framework
      • IBMMobileFirstPlatformFoundationOpenSSLUtils.framework
      • IBMMobileFirstPlatformFoundationWatchOS.framework
      执行此步骤会自动将这些框架添加到已链接的框架和库
    • 已链接的框架和库中,添加以下框架:
      • IBMMobileFirstPlatformFoundationJSONStore.framework
      • sqlcipher.framework
      • openssl.framework
      • Localizations.bundle
    • 注:这些步骤会将相关的 Mobile Foundation 框架复制到项目,并将“链接二进制文件”中的这些框架与“构建阶段”选项卡中的库列表链接。 如果将文件链接到其原始位置(没有按照先前描述选择“根据需要复制项目”选项),那么需要按照下面所述设置“框架搜索路径”。
  • 在步骤 1 中添加的框架将自动添加到构建阶段选项卡中的将二进制文件与库进行链接部分。
  • 可选:如果您没有按照先前所述将框架文件复制到项目中,请在构建阶段选项卡中使用根据需要复制项目选项执行以下步骤。
    • 打开构建设置页面。
    • 查找搜索路径部分。
    • 将包含框架的文件夹的路径添加到框架搜索路径文件夹。
  • 构建设置选项卡的部署部分中,为 iOS 部署目标字段选择一个大于或等于 8.0 的值。
  • 可选:从 Xcode 7 开始,将位码设置为缺省项。 有关限制和需求,请参阅在 iOS 应用程序中使用位码。 要禁用位码:
    • 打开构建选项部分。
    • 启用位码设置为
  • 从 Xcode 7 开始,必须实施 TLS。 请参阅在 iOS 应用程序中实施 TLS 安全连接

注册应用程序

  1. 打开命令行窗口并浏览至 Xcode 项目的根目录。

  2. 运行以下命令:

     mfpdev app register
    

    系统会要求您提供应用程序的 BundleID。 要点:BundleID 是区分大小写的

mfpdev app register CLI 命令将先连接到 MobileFirst Server 以注册应用程序,然后在 Xcode 项目的根目录生成 mfpclient.plist 文件,并向该文件添加用来标识 MobileFirst Server 的元数据。

提示:您还可以从 MobileFirst Operations Console 注册应用程序:

  1. 装入 MobileFirst Operations Console。
  2. 单击应用程序旁边的新建按钮以注册新应用程序,并遵循屏幕上的指示信息。
  3. 注册应用程序之后,浏览至应用程序的配置文件选项卡,然后复制或下载 mfpclient.plist 文件。 遵循屏幕上指示信息将此文件添加到您的项目。

完成设置过程

在 Xcode 中,右键单击项目条目,单击将文件添加到 [ProjectName],然后选择位于 Xcode 项目根目录的 mfpclient.plist 文件。

参考 SDK

无论何时您想要使用 Mobile Foundation 本机 SDK,都请确保导入 Mobile Foundation 框架:

Objective-C:

#import <IBMMobileFirstPlatformFoundation/IBMMobileFirstPlatformFoundation.h>

Swift:

import IBMMobileFirstPlatformFoundation


关于 iOS 9 及以上版本的注意事项:

从 Xcode 7 开始,缺省情况下会启用应用程序传输安全性 (ATS)。 要在开发期间运行应用程序,可以禁用 ATS(阅读更多)。

  1. 在 Xcode 中,右键单击 [project]/info.plist 文件 → 打开方式 → 源代码
  2. 粘贴以下内容:
     <key>NSAppTransportSecurity</key>
     <dict>
           <key>NSAllowsArbitraryLoads</key>
           <true/>
     </dict>

添加对 Apple watchOS 的支持

如果是为 Apple watchOS 2 和更高版本进行开发,那么 Podfile 必须包含与主要应用程序和 watchOS 扩展对应的部分。 请参阅下面针对 watchOS 2 的示例:

# Replace with the name of your watchOS application
xcodeproj 'MyWatchApp'

use_frameworks!

#use the name of the iOS target
target :MyWatchApp do
    platform :ios, 9.0
    pod 'IBMMobileFirstPlatformFoundation'
    end

#use the name of the watch extension target
target :MyWatchApp WatchKit Extension do
    platform :watchos, 2.0
    pod 'IBMMobileFirstPlatformFoundation'
end

验证 Xcode 项目是否已关闭,然后运行 pod install 命令。

更新 MobileFirst 本机 SDK

要使用最新发行版更新 Mobile Foundation 本机 SDK,请在命令行窗口中从 Xcode 项目的根文件夹运行以下命令:

pod update

可以在 SDK 的 CocoaPods 存储库中找到 SDK 发行版。

已生成 MobileFirst 本机 SDK 工件

mfpclient.plist

此文件位于项目的根目录中,定义用于在 MobileFirst Server 上注册 iOS 应用程序的客户机端属性。

| 属性 | 描述 | 示例值 | |———————|———————————————————————|—————-| | protocol | 与 MobileFirst Server 的通信协议。 | http 或 https | | host | MobileFirst Server 的主机名。 | 192.168.1.63 | | port | MobileFirst Server 的端口。 | 9080 | | wlServerContext | MobileFirst Server 上应用程序的上下文根路径。 | /mfp/ | | languagePreferences | 为客户机 sdk 系统消息设置缺省语言。 | zh |

位码和 TLS 1.2

有关对位码和 TLS 1.2 的支持的信息,请参阅其他信息页面。

接下来要学习的教程

集成 Mobile Foundation 本机 SDK 之后,您现在可以:

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on June 01, 2020