2016-05-17 16 views
28

Ho aggiornato i cocoapod oggi alla versione 1.0.0. Ho avuto questa stringa quando aggiorno i baccelli:Errore con cocoapods link_with dopo l'aggiornamento a 1.0.0

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

Ho rimosso link_with nel mio podFile ma non riesco a costruire il progetto perché ho molti Match-O-linker. Qualcuno sa come devo risolvere questo problema?

Questo è il mio Podfile in questo 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 
+1

La soluzione con 'def ... end' NON è consigliata secondo la presentazione del core team di CocoaPods il 13 giugno 2016 a San Francisco. La soluzione consigliata è 'abstract_target ... do ... end'. –

+0

La risposta accettata non è quella giusta. –

+0

Ha funzionato per me – croigsalvador

risposta

40

Prova questo. Funziona per me con più di un obiettivo.

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 
+1

Questo non è un approccio documentato ufficiale. –

+0

Grazie, lavora per me. – ZhukV

+0

vale la pena votare per una soluzione di lavoro ma non è documentato ufficialmente approccio Cocoapods – imnk

2

Con il nuovo . tutti i pod dovrebbero essere specificati come target. Modificare il file pod per

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 
29

Secondo le nuove CocoaPods ufficiali specification dalla versione 1.0 il nuovo modello è questo:

Nota che BasePods non è il nome reale di qualsiasi obiettivo nel progetto.

TargetNameOne e TargetNameTwo sono i nomi reali.

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 

Modifica - V'è un obiettivo astratto implicita alla radice del Podfile ora, quindi si potrebbe scrivere l'esempio precedente come:

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' 
  • Questo è per obiettivi multipli che è il caso più comune, ma può essere usato anche per un singolo bersaglio e mi piace uno schema universale.
+1

Grazie, la tua risposta ha risolto il mio problema.Pod versione 1.0.1 – moujib

+0

Funziona, inoltre ho dovuto modificare xcodeproj per il progetto – ArdenDev

+0

Questa è la risposta corretta documentazione per cocoapods. –

Problemi correlati