2015-01-22 4 views
48

NB : Here is a more abstract and simplified sub-set of this question.프레임 워크, 확장 및 코코아 패키지로 Xcode 프로젝트를 구성하는 방법

Touch Frameworks, ExtensionsApple Watch을 추가하면 프로젝트 및 작업 공간이 점점 복잡해지고 있습니다.

이 믹스에 CocoaPods을 추가하면 거의 관리하기 어려워집니다.

다음과 같은 대상 및 종속성을 가진 Xcode 프로젝트/작업 영역을 어떻게 구성합니까? (전제 : 모든 구성 요소에 힘내를 사용하고 있으며 모든 제 3 자 코드에 CocoaPods를 사용하고 있으며 Xcode 6을 사용하고 있습니다).

  • MyCoolApp CocoaPods
  • MyCoolNetworking.framework, 프레임 워크 (프로젝트) 내가 CocoaPods를 통해 망할 놈의 하위 모듈
    • AFNetworking로 만들어 통해
      • 여러 제 3 자 UI 라이브러리
      • 코코아 포토를 통한 다른 데이터 처리 코드
    • 응용 프로그램에서 사용 MyCoolAppBusinessLogic.framework, (아래) 모든 확장
      • 는하는 TodayView 확장이
      • MyCoolWatch 대상 응용 프로그램에 공통 CocoaPods 및 확장
    • MyCoolToadyView에서 일부 코드를 포함 Apple Watch 확장 타겟

여러분도 알다시피 두 개의 CocoaPod 인스턴스를 포함하는 복잡한 구조입니다. 이러한 문제 중 일부 또는 전부를 해결하는 방법에 대한 조언은 도움이 될 것입니다.

(내 계획은 내 자신의 아이디어 중 일부를 작성한 다음 다른 사람들의 답변을 합성하는 것입니다. 의심 할 바없이 살아있는 문서가 될 것입니다.)

+1

내가 모든 것을 이해하는지 확실하지 않습니다. MyCoolApp.xcodeproj가 자신의 프레임 워크와 대상을 가지고 있지 않다면, Pods.xcodeproj를 자신의 코드에 연결하는 CocoaPods에 의해 생성 된 MyCoolApp.xcworkspace가 있습니까? –

+0

나는 이것에 대한 답을 알고 싶어한다. (그리고 현재의 대답은 그 문제를 실제로 다루지 않는다.) 나는 많은 시간을 폴더와 "그룹"(Windows에서 오는 외계인의 개념) 주위를 뒤적 거리며 낭비했다. 프레임 워크, Swift 클래스, Obj-C 코드, .a 파일 등을 얻으려고 시도하는 것이 올바르게 감지되어 혼합 성공을 거두었습니다. 나는 CocoaPod를 사용하여 쉽게 작업 할 수 있다고 믿어 왔지만 몇 백 메가를 다운로드하기 전에 내가 원하는 몇 KB짜리 플러그인을 사용할 수있게되었습니다. 그 후 대부분 카르타고와 수동 플러그인에 갇혔다. ;) – Extragorey

답변

1

대답 이상의 댓글이 더 많지만 충분한 평판을 얻지 못했습니다. cocoapods xcode 플러그인을 사용해 보셨나요? 나는 그것을 사용하고 자체적으로 포드를 구성하므로 걱정할 필요조차 없습니다.

+1

정말 이것을 대답으로 바꿀 수 있습니다. 이 프로젝트를 어떻게 설정할지 예를 들어 보면 꽤 좋은 대답이됩니다. – Jacksonkr

0

정말 도움이되기 때문에 Cocoapods를 사용하여 작업 공간을 만들 수 있다고 생각합니다. 원하는 구성 요소를 자신의 프레임 워크에 추가 할 수 있습니다. 예를 들어

source 'https://github.com/CocoaPods/Specs.git' 
platform :ios, '8.0' 
use_frameworks! 

workspace ‘Project.xcworkspace' 

target 'Project.Models’ do 
xcodeproj ‘Project/Models.xcodeproj’ 
pod 'Alamofire', '~> 2.0' 
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git' 

end 

target 'Project.Business' do 
xcodeproj ‘ Project/Project.Business.xcodeproj’ 

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

end 

는 여기에 내가 여러 종속성을 여러 프레임 워크를 처리하고 내 프로젝트의 각각에 대해 제 3의 라이브러리에 대한 모든 종속성이 하나의 주 작업 공간으로 그것을 해결하기 위해 관리하는 방법의 한 예입니다

희망이 당신에게 힌트를 제공하거나 뭔가를 해결하는 데 도움이됩니다.

관련 문제