Añade un botón de ‘Compartir en TikTok’ en tu App de iOS con Swift

En el ecosistema móvil actual, la viralidad es uno de los motores de crecimiento más potentes para cualquier aplicación. TikTok se ha consolidado como la plataforma de contenido en vídeo en formato corto más popular del mundo, superando los mil millones de usuarios activos. Para los desarrolladores de iOS, permitir que los usuarios compartan contenido directamente desde su app hacia TikTok no es solo una función atractiva, sino una estrategia clave de adquisición orgánica de usuarios.

En este artículo, aprenderás paso a paso cómo integrar un botón de «Compartir en TikTok» en una app de iOS utilizando Swift. Cubriremos desde la configuración inicial en el portal de desarrolladores de TikTok hasta la implementación del código en Xcode.


¿Por qué deberías integrar la función ‘Compartir en TikTok’ en tu App iOS?

Integrar el SDK de compartición de TikTok (TikTok Share Kit) aporta múltiples beneficios tanto a los usuarios como a los creadores de la aplicación:

  • Aumento del alcance orgánico: Cada vez que un usuario comparte un vídeo o una imagen generada en tu app, tu marca o producto se expone a la audiencia de ese usuario en TikTok.
  • Mejora de la Experiencia de Usuario (UX): Reduces la fricción. El usuario no necesita guardar el vídeo en su carrete de fotos, abrir TikTok manualmente y buscar el archivo; todo se realiza con un solo toque.
  • Contenido Generado por el Usuario (UGC): Fomenta que la comunidad cree contenido alrededor de tu aplicación, ideal para apps de edición de foto/vídeo, juegos, fitness o estilo de vida.

Requisitos previos antes de empezar

Antes de tirar la primera línea de código en Xcode, asegúrate de contar con lo siguiente:

  1. Xcode 14 o superior instalado en tu Mac.
  2. Un proyecto de iOS configurado con Swift (compatible con iOS 12.0 o superior).
  3. Una cuenta de desarrollador en el portal TikTok for Developers.
  4. Un dispositivo físico iOS para realizar las pruebas (el simulador de Xcode puede presentar limitaciones al interactuar con apps externas).

Paso 1: Registrar tu aplicación en el portal de TikTok

Para interactuar con la API de TikTok, necesitas obtener las claves de autenticación oficiales.

  1. Dirígete al sitio web de TikTok Developer Platform e inicia sesión.
  2. Haz clic en «Manage Apps» y luego en «Create an App».
  3. Rellena la información básica de tu aplicación (nombre, icono, descripción).
  4. En la sección de permisos (Scopes), solicita acceso a Share Kit.
  5. Añade el Bundle ID de tu aplicación de iOS (por ejemplo, com.tuempresa.tuapp).
  6. Una vez creada la app, guarda el Client Key (lo necesitarás para la configuración en Xcode).

Paso 2: Instalar el SDK de TikTok en tu proyecto Xcode

La forma más sencilla de gestionar las dependencias en iOS es mediante Swift Package Manager (SPM) o CocoaPods. En este tutorial utilizaremos SPM por estar integrado de forma nativa en Xcode.

  1. Abre tu proyecto en Xcode.
  2. Ve a File > Add Package Dependencies…
  3. En la barra de búsqueda, introduce la URL del repositorio oficial del SDK de TikTok para iOS:
    https://github.com/tiktok/tiktok-opensdk-ios
  4. Selecciona la versión más reciente y añade los módulos TikTokOpenSDK y TikTokShareKit a tu Target principal.

Paso 3: Configurar el archivo Info.plist

iOS requiere permisos explícitos para permitir que tu aplicación se comunique con otras apps instaladas en el dispositivo. Debes modificar el archivo Info.plist de tu proyecto.

Abre tu archivo Info.plist como código fuente (Source Code) o mediante la interfaz gráfica y añade las siguientes claves:

<!-- Esquemas de URL permitidos para consultar TikTok -->
LSApplicationQueriesSchemes

    tiktokopensdk
    tiktoksharesdk
    snssdk1180
    snssdk1233


<!-- Configuración de tu App de TikTok -->
TikTokAppID
TU_CLIENT_KEY_AQUI

CFBundleURLTypes


        CFBundleURLSchemes

            <!-- Debe coincidir con tu Client Key de TikTok -->
            TU_CLIENT_KEY_AQUI


> Nota: Reemplaza TU_CLIENT_KEY_AQUI por la clave asignada en el panel de desarrolladores de TikTok.


Paso 4: Implementar la lógica de compartición en Swift

Ahora que la configuración previa está lista, vamos a escribir el código Swift para gestionar la compartición de contenido (fotos o vídeos).

Inicialización del SDK en el AppDelegate

Primero, debemos inicializar el SDK de TikTok cuando la aplicación se inicia y gestionar el retorno desde TikTok hacia nuestra app mediante URL Schemes.

import UIKit
import TikTokOpenSDK

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -&gt; Bool {
        // Inicializar SDK de TikTok
        TikTokOpenSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)
        return true
    }

    func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -&gt; Bool {
        // Manejar la respuesta del callback de TikTok
        if TikTokOpenSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options) {
            return true
        }
        return false
    }
}

Crear la función para compartir contenido

Podemos crear una clase gestora o incluir la lógica dentro de nuestro ViewController o vista en SwiftUI. A continuación, se muestra un ejemplo para compartir un vídeo almacenado localmente en el dispositivo:

import UIKit
import TikTokShareKit

class TikTokShareManager {

    static let shared = TikTokShareManager()
    private init() {}

    func shareVideoToTikTok(localVideoURL: URL, completion: @escaping (Bool, Error?) -&gt; Void) {

        // 1. Crear la solicitud de compartición
        let request = TikTokShareRequest()
        request.mediaType = .video

        // 2. Asignar la ruta local del archivo
        request.localIdentifiers = [localVideoURL.path]

        // 3. Enviar la solicitud a la app de TikTok
        request.send { response in
            guard let shareResponse = response as? TikTokShareResponse else {
                let error = NSError(domain: "TikTokShare", code: -1, userInfo: [NSLocalizedDescriptionKey: "Respuesta no válida"])
                completion(false, error)
                return
            }

            if shareResponse.errorCode == .NoError {
                print("¡Contenido compartido con éxito en TikTok!")
                completion(true, nil)
            } else {
                print("Error al compartir: \(shareResponse.errorDescription ?? "")")
                let error = NSError(domain: "TikTokShare", code: Int(shareResponse.errorCode.rawValue), userInfo: [NSLocalizedDescriptionKey: shareResponse.errorDescription ?? "Error desconocido"])
                completion(false, error)
            }
        }
    }
}

Paso 5: Diseñar el Botón en la Interfaz de Usuario (SwiftUI)

Para ofrecer una excelente experiencia de usuario, integraremos la lógica en una vista moderna de SwiftUI.

import SwiftUI

struct ShareView: View {
    @State private var isSharing = false
    @State private var alertMessage = ""
    @State private var showAlert = false

    // URL de ejemplo del vídeo local
    let sampleVideoURL = Bundle.main.url(forResource: "sample_video", withExtension: "mp4")

    var body: some View {
        VStack(spacing: 20) {
            Text("¡Comparte tu creación!")
                .font(.title2)
                .fontWeight(.bold)

            Button(action: {
                guard let videoURL = sampleVideoURL else {
                    alertMessage = "No se encontró el archivo de vídeo."
                    showAlert = true
                    return
                }

                isSharing = true
                TikTokShareManager.shared.shareVideoToTikTok(localVideoURL: videoURL) { success, error in
                    isSharing = false
                    if success {
                        alertMessage = "¡Proceso iniciado correctamente en TikTok!"
                    } else {
                        alertMessage = error?.localizedDescription ?? "No se pudo compartir el vídeo."
                    }
                    showAlert = true
                }
            }) {
                HStack {
                    Image(systemName: "square.and.arrow.up")
                        .font(.headline)
                    Text("Compartir en TikTok")
                        .fontWeight(.semibold)
                }
                .foregroundColor(.white)
                .padding()
                .frame(maxWidth: .infinity)
                .background(Color.black) // Color temático de TikTok
                .cornerRadius(12)
            }
            .disabled(isSharing)
            .padding(.horizontal, 30)
        }
        .alert(isPresented: $showAlert) {
            Alert(title: Text("Estado de la compartición"), message: Text(alertMessage), dismissButton: .default(Text("OK")))
        }
    }
}

Manejo de casos de borde y Fallbacks

No todos tus usuarios tendrán la aplicación de TikTok instalada en sus dispositivos. Es crucial validar si la app está presente antes de intentar realizar la acción:

  1. Comprobación de instalación: Utiliza UIApplication.shared.canOpenURL con el esquema de TikTok para saber si la aplicación está disponible.
  2. Mecanismo de reserva (Fallback): Si TikTok no está instalado, redirige al usuario a la App Store para que descargue la aplicación o permite guardar el archivo directamente en la galería de fotos del carrete utilizando PHPhotoLibrary.

Buenas prácticas de optimización y experiencia de usuario

Para maximizar la conversión del botón de compartir dentro de tu app, ten en cuenta las siguientes recomendaciones:

  • Formatos óptimos de vídeo: TikTok prioriza vídeos verticales en relación de aspecto 9:16. Asegúrate de que el contenido exportado desde tu app iOS cumpla con esta resolución (por ejemplo, 1080×1920 píxeles).
  • Duración del contenido: Mantén los archivos compartidos dentro de límites razonables (generalmente entre 15 y 60 segundos) para garantizar un procesamiento rápido.
  • Marcas de agua y branding: Incluye de forma sutil el logotipo o nombre de tu app en el vídeo compartido para beneficiarte de la visibilidad de la marca cuando el vídeo se vuelva viral.
  • Uso del branding oficial: Asegúrate de seguir las Guidelines de marca de TikTok al diseñar el botón en tu interfaz de usuario. Utiliza sus colores corporativos oficiales o mantén un diseño limpio y reconocible.

Conclusión

Integrar la función «Compartir en TikTok» en tu app de iOS utilizando Swift es un proceso relativamente sencillo que puede multiplicar el impacto del contenido de tu aplicación. A través del SDK oficial de TikTok, no solo mejoras la retención y satisfacción de los usuarios ofreciéndoles herramientas modernas, sino que abres un canal directo de adquisición orgánica.

Sigue los pasos detallados de esta guía: desde el registro en la plataforma de desarrolladores hasta la implementación con SwiftUI, y estarás listo para conectar tu app con la red social de mayor crecimiento del momento.

Deja una respuesta