Adición del SDK de MobileFirst Foundation a aplicaciones iOS

improve this page | report issue

Visión general

El SDK de MobileFirst Foundation está formado por un conjunto de pods disponibles a través de CocoaPods que se pueden añadir a su proyecto Xcode.
Los pods corresponden a funciones principales y a otras funciones:

  • IBMMobileFirstPlatformFoundation - Implementa la conectividad de cliente a servidor, maneja la autenticación y los aspectos de seguridad, solicitudes de recursos y otras funciones básicas necesarias.
  • IBMMobileFirstPlatformFoundationJSONStore - Contiene la infraestructura de JSONStore. Para obtener más información, revise la guía de aprendizaje JSONStore para iOS.
  • IBMMobileFirstPlatformFoundationPush - Contiene la infraestructura de notificaciones push. Para obtener más información, revise las guías de aprendizajes de notificaciones.
  • IBMMobileFirstPlatformFoundationWatchOS - Contiene soporte para Apple WatchOS.

En esta guía de aprendizaje aprenderá a añadir MobileFirst Native SDK mediante CocoaPods a una aplicación iOS nueva o ya existente. También aprenderá a configurar MobileFirst Server para que reconozca la aplicación.

Requisitos previos:

Nota: La funcionalidad de compartición de cadena de claves es obligatoria al ejecutar aplicaciones iOS en simuladores mediante XCode 8.

Ir a:

Adición de MobileFirst Native SDK

Siga las instrucciones que hay más abajo para añadir Mobile Foundation Native SDK a un proyecto de Xcode nuevo o existente y para registrar la aplicación para MobileFirst Server.

Antes de empezar, asegúrese de que MobileFirst Server está en ejecución.
Si está utilizando un servidor instalado localmente: Desde una ventana de línea de mandatos, vaya a la carpeta del servidor y ejecute el mandato: ./run.sh.

Creación de una aplicación

Cree un proyecto Xcode o utilice uno existente (Swift o Objective-C).

Adición del SDK

  1. Mobile Foundation Native SDK se proporciona a través de CocoaPods.
    • Si CocoaPods ya está instalado en su entorno de desarrollo, vaya al paso 2.
    • Si CocoaPods no está instalado, instálelo tal como se indica a continuación:
      • Abra una línea de mandatos y vaya a la raíz del proyecto Xcode.
      • Ejecute el mandato: sudo gem install cocoapods seguido por pod setup. Nota: Estos mandatos podrían tardar varios minutos en completarse.
  2. Ejecute el mandato: pod init. Este mandato crea un Podfile.
  3. Con la ayuda de su editor preferido, abra el Podfile.
    • Comente o suprima el contenido del archivo.
    • Añada las líneas siguientes y guarde los cambios:

      use_frameworks!
      
      platform :ios, 8.0
      target "Xcode-project-target" do
          pod 'IBMMobileFirstPlatformFoundation'
      end
      
      • Sustituya Xcode-project-target con el nombre de su destino del proyecto Xcode.
  4. De nuevo en la línea de mandatos, ejecute los mandatos pod install, seguidos por pod update. Estos mandatos añaden los archivos de Mobile Foundation Native SDK, añaden el archivo mfpclient.plist y generan un proyecto Pod.
    Nota: Los mandatos puede tardar unos minutos en completarse.

    Importante: A partir de aquí, utilice el archivo [ProjectName].xcworkspace para abrir el proyecto en Xcode. No utilice el archivo [NombreProyecto].xcodeproj. Un proyecto basado en CocoaPods está gestionado como un espacio de trabajo con la aplicación (el ejecutable) y la biblioteca (todas las dependencias de proyecto recuperadas por el gestor de CocoaPods).

Adición manual de MobileFirst Native SDK

También es posible añadir el SDK de Mobile Foundation:

Para añadir de forma manual el SDK de Mobile Foundation, descargue primero el archivo .zip SDK desde el separador MobileFirst Operations Console → Centro de descargas → SDK.

  • En su proyecto Xcode, añada los archivos de infraestructura de Mobile Foundation para su proyecto.
    • Seleccione el icono de raíz de proyecto en el explorador de proyectos.
    • Seleccione Archivo → Añadir archivos y vaya a la carpeta que contiene los archivos de infraestructura descargados con anterioridad.
    • Pulse el botón Opciones.
    • Seleccione Copiar elementos si es necesario y Crear grupos para las carpetas añadidas.
      Nota: Si no selecciona la opción Copiar elementos si es necesario, los archivos de infraestructura no se copian sino que se enlazan desde su ubicación inicial.
    • Seleccione el proyecto principal (primera opción) y seleccione el destino de aplicación.
    • En el separador General, elimine las infraestructuras que se añadirían de forma automática a Bibliotecas e infraestructuras enlazadas.
    • Necesario: En Binarios incluidos, añada las siguientes infraestructuras:
      • IBMMobileFirstPlatformFoundation.framework
      • IBMMobileFirstPlatformFoundationOpenSSLUtils.framework
      • IBMMobileFirstPlatformFoundationWatchOS.framework
      Al realizar este paso cargará automáticamente estas infraestructuras a las Bibliotecas e infraestructuras enlazadas.
    • En Bibliotecas e infraestructuras enlazadas, añada las siguientes infraestructuras:
      • IBMMobileFirstPlatformFoundationJSONStore.framework
      • sqlcipher.framework
      • openssl.framework
      • Localizations.bundle
    • Nota: Estos pasos copian las infraestructuras de Mobile Foundation relevantes de su proyecto y las enlazan dentro de la lista de Enlazar binario con Bibliotecas en el separador de Fases de compilación. Si enlaza los archivos a su ubicación original (sin elegir la opción Copiar elementos si es necesario tal como se describió con anterioridad), necesitará establecer las Vías de acceso de búsqueda de infraestructura tal como se describe a continuación.
  • Las infraestructuras añadidas en el Paso 1, se deberían añadir de forma automática a la sección Enlazar binario con bibliotecas, en el separador Fases de compilación.
  • Opcional: Si no copió los archivos de infraestructura en su proyecto tal como se describió con anterioridad, siga los siguientes pasos utilizando la opción Copiar elementos si es necesario, en el separador Fases de compilación.
    • Abra la página Valores de compilación.
    • Encuentre la sección Vías de acceso de búsqueda.
    • Añada la vía de acceso de la carpeta que continúe las infraestructuras a la carpeta Vías de acceso de búsqueda de infraestructura.
  • En la sección Despliegue del separador Valores de compilación, seleccione un valor para el campo Destino de despliegue de iOS que sea mayor o igual a 8.0.
  • Opcional: A partir de Xcode 7, bitcode se establece como predeterminado. Para conocer las limitaciones y requisitos consulte Trabajar con bitcode en aplicaciones iOS. Para inhabilitar el bitcode:
    • Abra la sección Opciones de compilación.
    • Establezca Habilitar bitcode en No.
  • A partir de Xcode 7, se debe utilizar de forma obligatoria TLS. Consulte Imposición de conexiones seguras TLS en aplicaciones iOS.

Registro de la aplicación

  1. Abra una línea de mandatos y vaya a la raíz del proyecto Xcode.

  2. Ejecute el mandato:

     mfpdev app register
    

    Se le solicitará proporcionar el BundleID de la aplicación. Importante: El BundleID es sensible a las mayúsculas y minúsculas.

El mandato de interfaz de línea de mandatos (CLI) mfpdev app register se conecta primero a MobileFirst Server para registrar la aplicación, a continuación genera el archivo mfpclient.plist en la raíz del proyecto Xcode y lo añade a los metadatos que identifican a MobileFirst Server.

Sugerencia: También es posible registrar aplicaciones desde MobileFirst Operations Console:

  1. Cargue MobileFirst Operations Console.
  2. Pulse el botón Nuevo junto a Aplicaciones para registrar una nueva aplicación y seguir las instrucciones en la pantalla.
  3. Después de que se registre la aplicación, vaya al separador Archivos de configuración y copie o descargue el archivo mfpclient.plist. Siga las instrucciones en la pantalla para añadir el archivo al proyecto.

Completar el proceso de configuración

En Xcode, pulse con el botón derecho del ratón en la entrada del proyecto, pulse Añadir archivos a [NombreProyecto] y seleccione el archivo mfpclient.plist, ubicado en la raíz del proyecto Xcode.

Cómo hacer referencia al SDK

Siempre que utilice el Mobile Foundation Native SDK, asegúrese de importar la infraestructura de Mobile Foundation:

Objective-C:

#import <IBMMobileFirstPlatformFoundation/IBMMobileFirstPlatformFoundation.h>

Swift:

import IBMMobileFoundationSwift


Nota acerca de iOS 9 y superior:

A partir de Xcode 7, ATS (Application Transport Security) está habilitado de forma predeterminada. Con el propósito de ejecutar aplicaciones durante el desarrollo, puede inhabilitar ATS (pulse aquí para obtener más información).

  1. En Xcode, pulse con el botón derecho del ratón sobre archivo [proyecto]/info.plist → Abrir como → Código fuente
  2. Pegue lo siguiente:
     <key>NSAppTransportSecurity</key>
     <dict>
           <key>NSAllowsArbitraryLoads</key>
           <true/>
     </dict>

Adición de soporte para Apple watchOS

Si está desarrollando para Apple watchOS 2 y posterior, el Podfile debe contener secciones que correspondan a la aplicación principal y la extensión watchOS. Consulte el siguiente ejemplo para 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

Verifique que el proyecto Xcode está cerrado y ejecute el mandato pod install.

Actualización de MobileFirst Native SDK

Para actualizar Mobile Foundation Native SDK con el último release, ejecute el siguiente mandato desde la carpeta raíz del proyecto Xcode en una ventana de línea de mandatos:

pod update

Los releases de SDK se pueden encontrar en el repositorio CocoaPods de SDK.

Artefactos de MobileFirst Native SDK generados

mfpclient.plist

Ubicado en la raíz del proyecto, este archivo define las propiedades del lado del cliente utilizadas para registrar la aplicación iOS en MobileFirst Server.

Propiedad Descripción Valores de ejemplo
protocol Protocolo de comunicación con MobileFirst Server. http o https
host Nombre de host de MobileFirst Server. 192.168.1.63
port Puerto de MobileFirst Server. 9080
wlServerContext Vía de acceso de raíz de contexto de la aplicación en MobileFirst Server. /mfp/
languagePreferences Establece el idioma predeterminado para los mensajes de sistema del SDK de cliente. en

Bitcode y TLS 1.2

Para obtener información sobre el soporte a bitcode y TLS 1.2 consulte la página de Información adicional.

Guías de aprendizaje con las que continuar

Con Mobile Foundation Native SDK ahora integrado, podrá:

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 February 27, 2020