Saltar a contenido

Guía de Despliegue para Apple iOS

Video Capture SDK .Net Video Edit SDK .Net Media Player SDK .Net Media Blocks SDK .Net

Descripción General

Esta guía completa te lleva a través del proceso de despliegue de aplicaciones potenciadas por el SDK de VisioForge en dispositivos Apple iOS. El SDK de VisioForge proporciona un framework potente para construir aplicaciones ricas en medios en iOS, ofreciendo soporte robusto para capacidades de captura, edición, reproducción y procesamiento de video.

El proceso de despliegue en iOS involucra varias consideraciones clave, desde gestión de paquetes hasta manejo de permisos y optimización de rendimiento. Este documento te guiará a través de cada paso para asegurar una experiencia de despliegue fluida.

Requisitos del Sistema

Antes de comenzar tu proceso de despliegue en iOS, asegúrate de que tu entorno de desarrollo cumpla los siguientes requisitos:

Requisitos de Hardware

  • Computadora Apple Mac para desarrollo (requerida para firma de apps iOS)
  • Dispositivo iOS para pruebas (altamente recomendado sobre simuladores)
  • Espacio de almacenamiento suficiente para herramientas de desarrollo y activos de aplicación

Requisitos de Software

  • Dispositivo Apple iOS con iOS 12 o posterior (se recomienda la última versión)
  • Xcode 12 o posterior con iOS SDK instalado
  • Cuenta de desarrollador Apple (requerida para firma y distribución de apps)
  • Visual Studio para Mac, JetBrains Rider o Visual Studio Code
  • .Net 7.0 SDK o posterior (recomendamos la última versión estable)

Soporte de Arquitectura

El SDK de VisioForge para iOS proporciona soporte nativo para las principales arquitecturas de dispositivos iOS:

Soporte ARM64

  • Compatible con todos los dispositivos iOS modernos (iPhone X y posteriores)
  • Bibliotecas nativas optimizadas para máximo rendimiento
  • Procesamiento de video acelerado por hardware donde sea soportado por el dispositivo

Proceso de Instalación

Sigue estos pasos para configurar e implementar correctamente tu aplicación iOS con VisioForge:

  1. Instala el .Net SDK para desarrollo iOS
  2. Crea un nuevo proyecto iOS en tu IDE preferido (se recomienda Visual Studio para Mac o JetBrains Rider)
  3. Agrega los paquetes NuGet requeridos a tu proyecto (detallado en la siguiente sección)
  4. Configura los permisos y entitlements necesarios en el archivo Info.plist de tu app
  5. Implementa la lógica de tu aplicación usando los componentes del SDK de VisioForge
  6. Compila, firma y despliega tu aplicación en dispositivos de prueba

Paquetes NuGet

El SDK de VisioForge para iOS se distribuye a través de paquetes NuGet:

Paquetes Principales

  • VisioForge.Core - Paquete principal que contiene clases principales y controles de UI, incluyendo componentes de reproducción y visualización de video. Este es independiente de plataforma y puede usarse en cualquier proyecto .Net.

Paquetes de UI

Cada paquete de UI tiene los mismos controles VideoView pero diferentes implementaciones para la plataforma objetivo:

Plataforma objetivo .Net iOS

  • VisioForge.Core - Contiene controles de UI y todas las clases principales para la plataforma iOS.

Plataforma objetivo .Net MAUI

Paquetes Redistributables

  • VisioForge.CrossPlatform.Core.iOS - Contiene los componentes principales de redistribución requeridos para cualquier aplicación iOS usando tecnologías VisioForge.

Puedes agregar estos paquetes usando el NuGet Package Manager en tu IDE o agregando lo siguiente a tu archivo de proyecto (usa las últimas versiones):

<ItemGroup Condition="$(TargetFramework.Contains('-ios'))">
  <PackageReference Include="VisioForge.Core" Version="2025.4.1" />
  <PackageReference Include="VisioForge.CrossPlatform.Core.iOS" Version="15.10.11" />
</ItemGroup>

Nota: Reemplaza los números de versión con las últimas versiones disponibles.

Permisos y Entitlements Requeridos

Las aplicaciones iOS requieren permisos explícitos para acceder a características del dispositivo como cámaras, micrófonos y la biblioteca de fotos. Configura estos permisos en el archivo Info.plist de tu app:

Acceso a Cámara

Requerido para funcionalidad de captura de video:

<key>NSCameraUsageDescription</key>
<string>Esta app requiere acceso a la cámara para grabación de video</string>

Acceso a Micrófono

Requerido para grabación de audio:

<key>NSMicrophoneUsageDescription</key>
<string>Esta app requiere acceso al micrófono para grabación de audio</string>

Acceso a Biblioteca de Fotos

Requerido para guardar videos en la biblioteca de fotos del dispositivo:

<key>NSPhotoLibraryUsageDescription</key>
<string>Esta app requiere acceso a la biblioteca de fotos para guardar videos</string>

Ejemplo de Configuración Info.plist

Aquí hay un ejemplo completo de un archivo Info.plist con todos los permisos necesarios:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>LSRequiresIPhoneOS</key>
    <true/>
    <key>UIDeviceFamily</key>
    <array>
        <integer>1</integer>
        <integer>2</integer>
    </array>
    <key>UIRequiredDeviceCapabilities</key>
    <array>
        <string>arm64</string>
    </array>
    <key>UISupportedInterfaceOrientations</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>UISupportedInterfaceOrientations~ipad</key>
    <array>
        <string>UIInterfaceOrientationPortrait</string>
        <string>UIInterfaceOrientationPortraitUpsideDown</string>
        <string>UIInterfaceOrientationLandscapeLeft</string>
        <string>UIInterfaceOrientationLandscapeRight</string>
    </array>
    <key>XSAppIconAssets</key>
    <string>Assets.xcassets/appicon.appiconset</string>
    <key>NSCameraUsageDescription</key>
    <string>Se requiere acceso a la cámara para grabación de video</string>
    <key>NSMicrophoneUsageDescription</key>
    <string>Se requiere acceso al micrófono para grabación de audio</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Se requiere acceso a la biblioteca de fotos para guardar videos</string>
</dict>
</plist>

Manejo de Permisos en Tiempo de Ejecución

Además de declarar permisos en tu archivo Info.plist, también debes solicitar permisos en tiempo de ejecución. Aquí hay un ejemplo de cómo solicitar permisos de cámara y micrófono:

using System.Diagnostics;
using Photos;

// Solicitar permiso de cámara
private async Task RequestCameraPermissionAsync()
{
    var status = await Permissions.RequestAsync<Permissions.Camera>();
    if (status != PermissionStatus.Granted)
    {
        // Manejar denegación de permiso
        Debug.WriteLine("Permiso de cámara denegado");
    }
}

// Solicitar permiso de micrófono
private async Task RequestMicrophonePermissionAsync()
{
    var status = await Permissions.RequestAsync<Permissions.Microphone>();
    if (status != PermissionStatus.Granted)
    {
        // Manejar denegación de permiso
        Debug.WriteLine("Permiso de micrófono denegado");
    }
}

// Solicitar permiso de biblioteca de fotos (específico de iOS)
private void RequestPhotoLibraryPermission()
{
    PHPhotoLibrary.RequestAuthorization(status =>
    {
        if (status == PHAuthorizationStatus.Authorized)
        {
            Debug.WriteLine("Acceso a biblioteca de fotos concedido");
        }
        else
        {
            Debug.WriteLine("Acceso a biblioteca de fotos denegado");
        }
    });
}

Inicialización del SDK

Inicializa correctamente el SDK de VisioForge en el ciclo de vida de tu aplicación:

// En tu AppDelegate o código de inicio de aplicación
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    // Inicializar el SDK de VisioForge
    VisioForge.Core.VisioForgeX.InitSDK();

    // Tu otro código de inicialización

    return true;
}

// Limpiar al terminar la aplicación
public override void WillTerminate(UIApplication application)
{
    // Limpiar recursos del SDK de VisioForge
    VisioForge.Core.VisioForgeX.DestroySDK();

    // Tu otro código de limpieza
}

Mejores Prácticas de Implementación

Usando Controles VideoView

El SDK de VisioForge proporciona un control VideoView para mostrar contenido de video. El VideoView es una subclase de UIView, y OpenGL se usa para renderizado de video:

// Crear una instancia de VideoView
var videoView = new VisioForge.Core.UI.Apple.VideoView(new CGRect(0, 0, UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height));
View.AddSubview(videoView);

// Obtener la interfaz IVideoView para usar con componentes de VisioForge
IVideoView vv = videoView.GetVideoView();

// Usar el IVideoView con un componente de VisioForge
var captureCore = new VideoCaptureCoreX(vv);

Puedes agregar el VideoView usando un storyboard o código.

Gestión de Recursos

Los dispositivos iOS tienen recursos limitados comparados con computadoras de escritorio. Sigue estas mejores prácticas:

  1. Libera recursos cuando no estén en uso
  2. Usa configuraciones de menor resolución para procesamiento en tiempo real
  3. Implementa gestión adecuada del ciclo de vida en tus ViewControllers
  4. Prueba en dispositivos reales, no solo simuladores

Pruebas y Depuración

Pruebas en Dispositivo Físico

Aunque el simulador iOS puede ser útil para pruebas básicas de interfaz, tiene limitaciones significativas para aplicaciones de medios:

  • El simulador puede tener problemas de rendimiento durante codificación de video a altas resoluciones
  • Cámara y micrófono no están disponibles en el simulador
  • Las características de aceleración de hardware pueden no estar disponibles o comportarse diferente

Siempre prueba tu aplicación de medios en dispositivos iOS físicos antes del lanzamiento.

Consideraciones Comunes de Rendimiento

Al desplegar aplicaciones de medios en iOS, considera estos factores de rendimiento:

  1. Resolución y velocidad de cuadros: Reduce estos ajustes para mejor rendimiento en dispositivos más antiguos
  2. Selección de codificador: Usa codificadores acelerados por hardware cuando estén disponibles
  3. Gestión de memoria: Implementa eliminación adecuada de objetos grandes y monitorea el uso de memoria
  4. Impacto en batería: El procesamiento de medios es intensivo en energía; implementa medidas de ahorro de energía

Solución de Problemas Comunes

Denegaciones de Permisos

Si tu app no puede acceder a la cámara o micrófono:

  1. Verifica que todos los permisos requeridos estén en tu Info.plist
  2. Verifica que estés solicitando permisos en tiempo de ejecución antes de intentar usar el hardware
  3. Prueba si el usuario ha denegado manualmente los permisos en Ajustes de iOS

Errores de Carga de Bibliotecas

Si encuentras errores al cargar bibliotecas nativas:

  1. Verifica que todos los paquetes NuGet requeridos estén correctamente instalados
  2. Busca versiones de paquetes en conflicto
  3. Asegúrate de que estés apuntando a la arquitectura iOS correcta (ARM64)

Recursos Adicionales


Siguiendo esta guía de despliegue, deberías poder crear, configurar y desplegar exitosamente aplicaciones potenciadas por VisioForge en dispositivos iOS. Para preguntas específicas o necesidades de configuración avanzada, por favor contacta al soporte técnico de VisioForge.