2016-05-19 3 views
2

В моем проекте Xcode используются пользовательские файлы .xcconfig для настроек сборки. У меня есть debug.xcconfig, beta.xcconfig и release.xcconfig. Они добавляют к каждой цели для одних и тех же конфигураций 3 сборки:Cocoapods 1.0: те же самые стручки для нескольких целей

enter image description here

мне нужно все мои стручки интегрированных для всех целей. Тем не менее, при выполнении установки pod Cocoapods генерирует 3 файла .xcconfig для каждой цели и ожидает, что они будут добавлены к каждой цели или включены в мой файл .xcconfig. В послании говорится:

CocoaPods не установил базовую конфигурацию вашего проекта, поскольку вашего проекта уже имеет набор пользовательских конфигурации. Чтобы интеграция CocoaPods вообще не работала, пожалуйста, либо установите базовые конфигурации целевого «Target1» на «Pods/Target Support» Файлы/Pods-Target1/Pods-Target1.debug.xcconfig 'или включают ' Pods/Target Support Files/Pods-Target1/Pods-Target1.debug.xcconfig ' в вашей конфигурации сборки (' MyProject/Configuration/Debug.xcconfig ').

Я не могу установить базовую конфигурацию для созданного Cocoapods файла xcconfig. Мне нужно, чтобы мой файл xcconfig был установлен как базовый, чтобы применить мои настройки сборки к цели. Поэтому мне придется спуститься по маршруту включения. В Cocoapods 0.x я был в состоянии просто поставить это включить в моих привычках .xcconfig файлов:

#include "../Pods/Target Support Files/Pods/Pods.debug.xcconfig" 

Но с Cocoapods 1.0, я ожидал, чтобы сделать что-то вроде этого (для каждого из моих xcconfigs):

#include "../Pods/Target Support Files/Pods-Target1/Pods-Target1.debug.xcconfig" 
#include "../Pods/Target Support Files/Pods-Target2/Pods-Target2.debug.xcconfig" 
#include "../Pods/Target Support Files/Pods-Target3/Pods-Target3.debug.xcconfig" 
#include "../Pods/Target Support Files/Pods-Target4/Pods-Target4.debug.xcconfig" 

Это нехорошо. Мой проект имеет 12 целей, что означает, что я должен поставить 12 включений в каждый из моих 3 пользовательских .xcconfigs, всего 36 включений. Должен быть лучший способ.

Я пробовал несколько подходов в моем подфайле, включая абстрактную цель, но результат всегда один и тот же. Кто-нибудь знает, как это решить?

Heres мой Podfile код:

platform :ios, '8.4' 
use_frameworks! 


def myPods 

    pod 'SplunkMint' 
    pod 'Alamofire', '~> 3.0' 
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git' 

end 

target 'target1' do 
    myPods 
end 

target 'target2' do 
    myPods 
end 

target 'target3' do 
    myPods 
end 

target 'target4' do 
    myPods 
end 
+0

Можете ли вы разместить свой код podFile? – lubilis

+0

Это мой текущий подфайл. Но, как я уже упоминал, я тестировал другую версию, все с одинаковым результатом. платформа: ios, '8.4' use_frameworks! Защиту myPods стручок 'SplunkMint' стручок 'Alamofire', '~> 3,0' стручок 'SwiftyJSON': мерзавец => 'https://github.com/SwiftyJSON/SwiftyJSON.git' конец цели 'target1' сделать myPods конец цели '' TARGET2 сделать myPods конца цели '' target3 сделать myPods конца цели 'target4' делать myPods end – Telstar

ответ

2

Вы не должны включать в себя все стручок конфигурации в каждой пользовательской целевой конфигурации, но каждый целевой конфигурации должен включать только его собственный справочник стручок конфигурации:

Target1

#include "../Pods/Target Support Files/Pods-Target1/Pods-Target1.debug.xcconfig" 

Target2

#include "../Pods/Target Support Files/Pods-Target2/Pods-Target2.debug.xcconfig" 

PodFile кажется правильным, может быть, вы должны четко типа цели до определения «myPods»:

xcodeproj 'YourProjectName', { 
    'Target1' => :release, 
    'Target2' => :debug, 
    'Target3' => :debug 
    'Target4' => :debug 
} 

ваших конфигураций Xcode (изображение), кажется, тоже хорошо, единственное различие с моим рабочим проектом является то, что я выбрал «none» вместо «Application» на уровне проекта.

Попробуйте закрыть xCode, удалите все контейнеры и снова запустите pod install.

+0

Позвольте мне убедиться, правильно ли я вас понял: Конфигурация отладки: для target1 Я установил базовый файл конфигурации в target1-debug.xcconfig (который будет новым файлом, который я создаю). В этом файле, я включил свой собственный справочник стручок конфигурации, а также мой существующий Debug.xcconfig. Такая же процедура для остальных целей. Cocoapods 0.x: Я мог бы обойтись с моим Debug.xcconfig в качестве базового файла conf для всех целей (в конфигурации Debug). Cocoapods 1.0: каждая цель должна иметь свой собственный файл conf conf, который, в свою очередь, включает все, что мне нужно (как упоминалось выше). Правильно? – Telstar

+0

Звучит неплохо, у меня есть проект, сконфигурированный как это с Cocoapods 1.0 и хорошо работает – lubilis

+0

Большое спасибо. Принял немного усилий, но теперь работает. – Telstar