2017-11-14 7 views
1

우리는 두 개의 iOS 앱 프로젝트에서 공유 할 프레임 워크 프로젝트 (F)를 만들 예정입니다. F은 여러 타사 프레임 워크 (Cocoa 포드별로 배포 됨)에 따라 다릅니다.포드에 의존하는 프레임 워크 프로젝트를 구성하는 방법은 무엇입니까?

그것은 F.framework로 배포됩니다 결정 (안 포드 등).

아이디어는 앱에 F 만 포함된다는 것입니다. 앱 개발자는 F이 다른 프레임 워크를 내부적으로 사용한다는 것을 알 필요조차 없습니다.

우리는 테스트 프로젝트를 생성합니다 F이 잘 작동하는지 테스트하기 위해 (의이 T의 이름을 보자).

질문은 어떻게 구성합니까?

일반적으로, 나는 엑스 코드에 F 하위 프로젝트 T의를 만들 것 :

T.xcodeproj 
    F.xcodeproj 

가 그럼 난 F 개발, 애플 리케이션 작업들에 를 배포 결국 F.framework을 테스트하고 .

하지만이 경우 F은 광고 모음에 따라 다릅니다. 후에 나는 F.xcworkspace을 얻습니다.

T.xcodeproj??? 
    F.xcworkspace??? 

는 내가 쉽게 프레임 워크 및 테스트 응용 프로그램 T 모두를 개발하기 위해 만드는 것이 TF 프로젝트 (결합 할 수 있다는 뜻 : 분명히, 내가 작업 공간에 프로젝트가 의존 할 수 없습니다 동시에)

답변

1

개발중인 프레임 워크와 동일한 .xcodeproj에 전체 프로젝트를 넣을 수 있어야합니다. 내가 한 일은 유닛 테스트를 실행하고 프레임 워크의 .xcodeproj에서 일부 기본 기능을 타겟으로 사용하는 샘플 앱 (여기서는 "TestRunner"라고 함)을 만들었습니다.

우리는 프레임 워크와 동일한 프로젝트에서 작동하는 프로젝트에 대한 테스트를 동일한 방식으로 수행합니다. 구조는 다음과 같습니다.

enter image description here

의 TestRunner는 DCExtensions.framework을 시뮬레이터에서 실행 포함 할 수있는 전체 응용 프로그램입니다. DCExtension 프레임 워크를 만들 때 TestRunner 코드는 포함되어 있지 않습니다. 우리가 설치 한 포드가 포함되어 있습니다.

귀하의 Pod 파일은 다음과 같이 보일 수 있습니다.

# Uncomment the next line to define a global platform for your project 
platform :ios, '9.0' 

target 'DCExtensions' do 
    # Comment the next line if you're not using Swift and don't want to use dynamic frameworks 
    use_frameworks! 

    # Pods for DCExtensions 
    pod 'Alamofire' 

    target 'DCExtensionsTests' do 
    inherit! :search_paths 
    # Pods for testing 

    end 

end 

target 'TestRunner' do 
    # Comment the next line if you're not using Swift and don't want to use dynamic frameworks 
    use_frameworks! 

    # Pods for TestRunner 

end