Error con cocoapods link_with después de la actualización a 1.0.0

He actualizado cocoapods hoy a la versión 1.0.0. Recibí esta cadena cuando actualizo los pods:

[!] Invalid Podfile file: [!] The specification of link_with in the Podfile is now unsupported, please use target blocks instead..

He eliminado link_with en mi podFile pero no puedo build el proyecto porque tengo muchos Match-O-Linkers. ¿Alguien sabe cómo debo solucionar este problema?

Este es mi Podfile en este momento:

 source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' inhibit_all_warnings! pod 'pop', '~> 1.0' pod 'AFNetworking', '~> 1.3' pod 'SDWebImage', '~> 3.7' pod 'GoogleAnalytics', '~> 3' pod 'ARAnalytics' , :subspecs => ["Crashlytics", "Amplitude", "DSL"] pod 'FBSDKCoreKit', '~> 4.10.1' pod 'FBSDKLoginKit', '~> 4.10.1' pod 'FBSDKShareKit', '~> 4.10.1' pod 'Google/SignIn' pod 'Branch' pod 'Leanplum-iOS-SDK' pod 'Fabric', '1.6.7' pod 'Crashlytics', '3.7.0' pod 'TwitterKit' pod 'Digits' target 'minubeTests' do pod 'OCMockito' end 

Prueba esto. Funciona para mí con más de un objective.

 source 'https://github.com/CocoaPods/Specs.git' platform :ios, '8.0' def myPods pod 'pop', '~> 1.0' pod 'AFNetworking', '~> 1.3' pod 'SDWebImage', '~> 3.7' pod 'GoogleAnalytics', '~> 3' pod 'ARAnalytics' , :subspecs => ["Crashlytics", "Amplitude", "DSL"] pod 'FBSDKCoreKit', '~> 4.10.1' pod 'FBSDKLoginKit', '~> 4.10.1' pod 'FBSDKShareKit', '~> 4.10.1' pod 'Google/SignIn' pod 'Branch' pod 'Leanplum-iOS-SDK' pod 'Fabric', '1.6.7' pod 'Crashlytics', '3.7.0' pod 'TwitterKit' pod 'Digits' end target 'yourTargetOne' do myPods end target 'yourTargetTwo' do myPods end target 'minubeTests' do pod 'OCMockito' end 

Según la nueva especificación oficial de CocoaPods desde la versión 1.0, el nuevo model es el siguiente:

Tenga en count que BasePods no es el nombre real de ningún objective en el proyecto.

TargetNameOne y TargetNameTwo son los nombres reales.

 platform :ios, '8.1' inhibit_all_warnings! abstract_target 'BasePods' do ## Networking pod 'AFNetworking', '~> 2.6' # Twitter pod 'TwitterKit', '~> 1.9' pod 'Fabric' # Specify your actual targets target 'TargetNameOne' target 'TargetNameTwo' end 

Editar : ahora hay un objective abstracto implícito en la raíz del Podfile , por lo que podría escribir el ejemplo anterior como:

 platform :ios, '8.1' inhibit_all_warnings! ## Networking pod 'AFNetworking', '~> 2.6' # Twitter pod 'TwitterKit', '~> 1.9' pod 'Fabric' # Specify your actual targets target 'TargetNameOne' target 'TargetNameTwo' 
  • Esto es para objectives múltiples, que es el caso más común, pero también se puede usar para un solo objective y me gusta un patrón universal.

Con la nueva especificación . todos los pod incluidos deben especificarse según el objective. Cambia tu file pod a

 platform :ios, '8.0' # change minube to whatever name is of you main target target 'minube' do pod 'pop', '~> 1.0' pod 'AFNetworking', '~> 1.3' pod 'SDWebImage', '~> 3.7' pod 'GoogleAnalytics', '~> 3' pod 'ARAnalytics' , :subspecs => ["Crashlytics", "Amplitude", "DSL"] pod 'FBSDKCoreKit', '~> 4.10.1' pod 'FBSDKLoginKit', '~> 4.10.1' pod 'FBSDKShareKit', '~> 4.10.1' pod 'Google/SignIn' pod 'Branch' pod 'Leanplum-iOS-SDK' pod 'Fabric', '1.6.7' pod 'Crashlytics', '3.7.0' pod 'TwitterKit' pod 'Digits' end target 'minubeTests' do pod 'OCMockito' end