[Parte 4.1] De Rust a iOS: creando una l ...

[Parte 4.1] De Rust a iOS: creando una librería en Swift Package Manager (SPM) para integr

Sep 09, 2025

Prerrequisitos

  • macOS + Xcode (15+ recomendado).

  • Cuenta en GitHub

  • Git instalado y configurado

  • Repositorio Github

Paso 1: Crear la librería universal (.a)

Una biblioteca universal combina todas estas arquitecturas en un solo archivo, lo que te permite usarla sin problemas en cualquier entorno de desarrollo.

1.1. Crear librería universal para simulator

lipo -create \

target/x86_64-apple-ios/release/tu_lib.a \

target/aarch64-apple-ios-sim/release/tu_lib.a -output tu_lib_universal.a

//Verifica arquitecturas:

lipo -info tu_lib_universal.a

//Deberías ver algo como:

Architectures in the fat file: tu_lib_universal.a are: arm64 x86_64

Paso 2: Crear el .xcframework

xcodebuild -create-xcframework \

-library tu_lib_universal.a \

-headers src \

-output tu_lib.xcframework

Paso 3: SPM

3.1. Crear carpeta e inicializar SPM

mkdir safe_passwordiOS

cd safe_passwordiOS

swift package init --type library

3.2. Copiar xcframework a la carpeta safe_passwordiOS/Sources/safe_passwordiOS/

3.3. Configurar SPM (Package.swift)

let package = Package(

name: "safe_passwordiOS",

platforms: [

.iOS(.v17)

],

products: [

// Products define the executables and libraries a package produces, making them visible to other packages.

.library(

name: "safe_passwordiOS",

targets: ["safe_passwordiOS"]),

],

targets: [

.binaryTarget(

name: "safe_passwordiOS",

path: "Sources/safe_passwordiOS/tu_lib.xcframework"

),

.target(

name: "safe_passwordiOS",

dependencies: [

"safe_passwordiOS",

],

path: "Sources/safe_passwordiOS",

sources: ["safe_passwordiOS.swift"],

publicHeadersPath: "include",

),

.testTarget(

name: "safe_passwordiOSTests",

dependencies: ["safe_passwordiOS"]

),

]

)

3.3. Agregar bindings

Copia el contenido del archivo .swift generado en Parte 4-2 y agregalo al archivo safe_passwordiOS/Sources/safe_passwordiOS.swift

Paso 4: Subir a github y generar tags

Paso 5: Consumir el package publicado

  • En Xcode, File → Add Packages → Enter package repository URL…

  • Pega el URL del repo

  • Selecciona la versión/tag o rama que quieras

  • Añade el producto safe_passwordiOS a tu target

Paso 6: Usar los métodos.

//Método definido en mi lib rust y bindings swift

generatePassword(length: UInt64, includeUppercase: Bool, includeNumbers: Bool, includeSymbols: Bool)

checkStrength(password: String) //retorna PasswordStrength

//enum

public enum PasswordStrength {

case weak

case moderate

case strong

}

¡Transforma Rust en iOS!.
Creamos un .xcframework y un Swift Package listo para instalar en SwiftUI. Tu librería ahora es compartible, versionable y reutilizable.

Si te ha sido útil, apóyame: tu ayuda me permite seguir creando guías paso a paso y recursos para la comunidad.

Enjoy this post?

Buy wuilmerj24 a coffee

More from wuilmerj24