CocoaPods ha anunciado que su registro central (trunk) pasará a ser de solo lectura de forma permanente el 2 de diciembre de 2026. Después de esa fecha, CocoaPods dejará de aceptar nuevas versiones de pod. Esta página explica lo que eso significa para el agente de iOS de New Relic y los agentes híbridos creados en él, y cómo trasladar la aplicación a otro método de instalación.
Antes de migrar
Revise estas respuestas antes de migrar:
- What's changing? La versión 7.7.10 es el último agente de iOS que publicamos en CocoaPods (el pod
NewRelicAgent). Las versiones posteriores solo están disponibles a través del administrador de paquetes Swift y como una descarga de XCFramework. - Will my app break? No. Cada versión de
NewRelicAgentya publicada se mantiene en CocoaPods, por lo quepod instally las canalizaciones de CI siguen funcionando. Simplemente no obtiene versiones más recientes del agente a través de CocoaPods. - Why migrate? Para seguir recibiendo nuevas características, correcciones y compatibilidad con las nuevas versiones de iOS y Xcode, migre al administrador de paquetes de Swift o a XCFramework.
Este cambio también afecta a los agentes híbridos que obtienen el agente de iOS a través de CocoaPods. Si utiliza React Native, Flutter, Ionic Capacitor, Cordova o Unity, consulte Migrar aplicaciones que utilizan un agente híbrido.
Migre la aplicación de iOS
Elija uno de estos métodos de instalación:
- Administrador de paquetes de Swift: el administrador de paquetes de Apple, integrado en Xcode. Actualice el agente desde Xcode.
- XCFramework: un paquete de framework que descarga y agrega al proyecto por su cuenta. Puede actualizarlo descargando una nueva versión.
El agente de iOS no depende de ningún otro paquete, por lo que puede moverlo al administrador de paquetes Swift incluso si algunas de sus otras dependencias permanecen en CocoaPods por ahora. Si planea mover todas sus dependencias fuera de CocoaPods, primero verifique que cada una de ellas sea compatible con el administrador de paquetes Swift. Para una dependencia que no lo hace, el método XCFramework le permite agregar y actualizar el agente de forma independiente de cualquier administrador de paquetes.
Importante
Instale el agente con un solo método. Si el pod NewRelicAgent todavía está instalado cuando agrega el agente de otra manera, su aplicación termina con dos copias del agente, lo que causa errores de compilación o un comportamiento impredecible.
Administrador de paquetes Swift
Anote qué versión del agente utiliza hoy. Aparece junto a NewRelicAgent en su Podfile.lock.
Cierre Xcode, luego elimine el pod NewRelicAgent:
Si
NewRelicAgentes el único pod, ejecute este comando en el directorio del proyecto, luego eliminePodfile,Podfile.locky el archivo.xcworkspaceque generó CocoaPods:bash$pod deintegrateSi todavía usa otros pods, elimine la línea
pod 'NewRelicAgent'de suPodfiley luego ejecute:bash$pod installCompruebe que
NewRelicAgentya no aparece enPodfile.lock.
Abra el proyecto en Xcode. Si aún utiliza otros pod, abra el archivo .xcworkspace. De lo contrario, abra el archivo .xcodeproj.
Seleccione File > Add Package Dependencies... e ingrese esta URL:
https://github.com/newrelic/newrelic-ios-agent-spmPara la regla de la dependencia, elija Up to Next Major Version, a partir de la versión que anotó en el primer paso o una más reciente.
Agregue el producto de paquete NewRelic al objetivo de la aplicación y a cualquier otro objetivo que haya usado el pod, como una extensión de la aplicación.
Revise el script de compilación de carga de dSYM en el Build Phases del objetivo:
- Si es el script para el agente de iOS 7.4.0 o superior (busca
run-symbol-tool), déjelo como está. Encuentra la herramienta en el paquete de Swift. - Si llama a
newrelic_postbuild.sh, o utiliza una ruta dentro dePods/, reemplácelo con el script 7.4.0 o superior de la instalación del administrador de paquetes de Swift.
Mantenga el script como la última fase de compilación y asegúrese de que Based on dependency analysis esté desmarcado.
Limpie y compile la aplicación, y luego ejecútela. El código que inicia el agente y el token de la aplicación no cambian.
Para actualizar el agente más adelante, consulte Actualizar con el administrador de paquetes de Swift.
XCFramework
Cierre Xcode y elimine el pod NewRelicAgent, como se describe en los pasos del administrador de paquetes Swift.
Siga la instalación manual de XCFramework para descargar el agente y agregarlo al objetivo de la aplicación. Asegúrese de que NewRelic.xcframework esté configurado en Embed & Sign.
Revise el script de compilación de carga de dSYM como se describe en los pasos del administrador de paquetes de Swift. El script 7.4.0 o superior encuentra run-symbol-tool dentro de NewRelic.xcframework.
Limpie y compile la aplicación, y luego ejecútela. El código que inicia el agente y el token de la aplicación no cambian.
Para actualizar el agente más adelante, consulte Reemplazar manualmente su agente de iOS.
Actualice el pipeline de CI/CD
Si eliminó CocoaPods por completo, actualice cualquier paso del pipeline que ejecute pod install o compile el archivo .xcworkspace. Si usa el administrador de paquetes de Swift, considere resolver los paquetes en un paso separado antes de la compilación:
$xcodebuild -resolvePackageDependencies -project YourApp.xcodeproj -scheme YourAppMigre aplicaciones que usan un agente híbrido
Los agentes híbridos incluyen el agente de iOS. La mayoría de ellos puede obtenerlo a través de CocoaPods o del administrador de paquetes de Swift, y la configuración del proyecto de la aplicación decide cuál se utiliza:
Agente | Qué hacer |
|---|---|
Active el administrador de paquetes de Swift en el | |
Utilice la compatibilidad con el administrador de paquetes de Swift de Flutter, que está activada de forma predeterminada a partir de Flutter 3.44. | |
Mueva el proyecto iOS al administrador de paquetes de Swift si todavía usa CocoaPods. | |
Actualice a | |
No se requiere ninguna acción. Para obtener versiones más recientes del agente de iOS, agregue el XCFramework al proyecto de Xcode usted mismo. | |
.NET MAUI y Unreal Engine | No se requiere ninguna acción. Estos agentes incluyen el agente de iOS en su propio paquete y no usan CocoaPods. |
Si la aplicación sigue obteniendo el agente de iOS a través de CocoaPods, aún puede actualizar el agente híbrido. Las nuevas versiones del agente híbrido mantienen el agente de iOS 7.7.10 para CocoaPods y usan versiones más recientes del agente de iOS solo a través del administrador de paquetes de Swift.
React Native
De forma predeterminada, el agente React Native obtiene el agente iOS de CocoaPods. Puede cambiar al administrador de paquetes de Swift con el agente React Native 1.9.3 o superior.
Aplicación estándar de React Native
Antes de cambiar, asegúrese de que la aplicación cumpla con estos requisitos:
- React Native 0.75 o superior
use_frameworks! :linkage => :dynamicen suPodfile- Un bloque
post_installen suPodfileque llama areact_native_post_install, como lo hace la plantilla estándar de React Native
Para cambiar, siga estos pasos:
Actualice el agente de React Native a la versión 1.9.3 o superior.
En la parte superior de su
ios/Podfile, agregue:ENV['NEWRELIC_USE_SPM'] = '1'use_frameworks! :linkage => :dynamicEjecute
pod installen el directorioios, luego verifique queNewRelicAgentya no aparezca en elPodfile.lock.Compile y ejecute la aplicación.
Aplicación Expo
npx expo prebuild regenera la carpeta ios, así que configúrelo en la configuración del proyecto en lugar de en el Podfile. Necesita Expo SDK 52 o superior.
Para cambiar, siga estos pasos:
Actualice el agente de React Native a la versión 1.9.3 o superior.
Instale
expo-build-properties:bash$npx expo install expo-build-propertiesEn
app.jsonoapp.config.js, configure iOS para usar frameworks dinámicos:"plugins": ["newrelic-react-native-agent",["expo-build-properties", { "ios": { "useFrameworks": "dynamic" } }]]Agregue
NEWRELIC_USE_SPM=1al archivo.enven el directorio raíz del proyecto.npx expo prebuildynpx expo run:ioslo cargan.Ejecute
npx expo prebuild --clean, luego compruebe queNewRelicAgentya no aparece enios/Podfile.lock.
Si no se establece NEWRELIC_USE_SPM cuando se ejecuta CocoaPods, por ejemplo, cuando ejecuta pod install o npx pod-install manualmente, la aplicación volverá a obtener el agente de iOS desde CocoaPods.
Flutter
El agente de Flutter es compatible tanto con CocoaPods como con el administrador de paquetes de Swift, y Flutter decide cuál usar. A partir de Flutter 3.44, el administrador de paquetes de Swift está activado de forma predeterminada, por lo que la mayoría de las aplicaciones ya obtienen el agente de iOS a través de este.
Si desactivó el administrador de paquetes de Swift, vuelva a activarlo ejecutando:
$flutter config --enable-swift-package-managerTambién elimine enable-swift-package-manager: false de pubspec.yaml si lo agregó.
Ionic Capacitor
El agente de Capacitor es compatible tanto con CocoaPods como con el administrador de paquetes de Swift, y el proyecto de iOS decide cuál se utiliza. Capacitor 8 crea nuevos proyectos de iOS con el administrador de paquetes de Swift, pero un proyecto creado con CocoaPods lo sigue usando hasta que lo migre.
- Si la carpeta
ios/Apptiene un paqueteCapApp-SPM, ya usa el administrador de paquetes de Swift.npx cap syncmantiene el agente actualizado. - Si tiene un
Podfile, mueva el proyecto al administrador de paquetes de Swift siguiendo la guía del administrador de paquetes de Swift de Capacitor. Cubre el comandonpx cap spm-migration-assistanty la recreación de la plataforma de iOS.
Cordova
Con cordova-ios 8 o superior, el agente de Cordova obtiene el agente de iOS a través del administrador de paquetes de Swift. Las versiones anteriores de cordova-ios usan CocoaPods.
Para migrar, siga estos pasos:
Actualice el agente de Cordova a la última versión.
Actualice la plataforma iOS. Consulte el anuncio de lanzamiento de cordova-ios 8:
bash$cordova platform remove ios$cordova platform add ios@8Al eliminar la plataforma se elimina la carpeta
platforms/ios, por lo que pierde los cambios que haya realizado allí manualmente. Respáldelos primero.Asegúrese de que
config.xmlestablezca el objetivo de despliegue de iOS en 15.0 o superior:<preference name="deployment-target" value="15.0" />Compile y ejecute la aplicación.
Unidad
El agente de Unity obtiene el agente de iOS a través de CocoaPods, utilizando el administrador de dependencias externo para Unity (EDM4U). No es compatible con el administrador de paquetes de Swift. La aplicación se sigue compilando con las versiones que ya están en CocoaPods, y las nuevas versiones del agente de Unity mantienen el agente de iOS 7.7.10.
Para usar una versión más reciente del agente de iOS, agregue manualmente XCFramework al proyecto de Xcode, como se describe en los pasos de dependencia del agente de Unity. Asegúrese de que EDM4U tampoco instale el pod NewRelicAgent, para que la aplicación tenga solo una copia del agente.