2013-03-07 2 views
1

여러 클라이언트의 프로젝트를 맞춤 설정하려고합니다. 이 프로젝트는 CocoaPods와 Storyboard를 사용합니다. 내가 몇 가지 버그를 수정하고 그 과정에서 각 클라이언트의 UI를 약간 변경하려고하므로 다음과 같이 프로젝트를 구성하고 싶습니다. 1. 시작 iOS 앱을 컴파일 된 정적 라이브러리로 변경하십시오. 2 새 맞춤형 앱을 만듭니다. 정적 라이브러리에 링크하십시오. 3. 원본 Storyboard를 새 사용자 지정된 App에 복사합니다.iOS 앱을 정적 라이브러리로 컴파일

이제 "새로운"스토리 보드에서 고객의 요구에 따라 변경 사항을 적용 할 수 있습니다. 사용자 정의 클래스로 Storyboard 참조의 모든 ViewController는 원래 응용 프로그램 (이제 컴파일 된 정적 라이브러리)에 정의 된 클래스를가집니다. 이렇게하면 원본 클래스를 항상 교체하거나 확장하고 스토리 보드에있는 내 ViewController의 사용자 정의 클래스로 새 클래스를 설정할 수 있습니다.

나에게 좋을 것 같습니다. 그러나 나는 그것을 작동시킬 수 없다. 1. 원본 iOS 앱에서 정적 라이브러리를 생성하여 프로젝트에 보조 대상을 정적 라이브러리로 추가했습니다. 헤더 검색 경로, 플래그 및 링크 프레임 워크로 고생 한 후 컴파일되었습니다 (많은 경고 포함). 2. 새 프로젝트를 만들고 정적 라이브러리를 연결했지만 컴파일 할 수 없습니다.

내 질문은 1. 나는 이것을 올바르게하고 있습니까? 2. 관련 헤더 파일이있는 정적 라이브러리가있는 경우 이전 라이브러리를 사용하는 다른 정적 라이브러리를 만듭니다. 두 번째로 만든 라이브러리를 새 프로젝트에 사용하려면 라이브러리와 헤더 파일 모두와 링크해야합니까?

+0

안녕하세요,이를 수행 할 수 있었습니까? – ekeren

+0

나는 포드 (pod)로서 나의 라이브러리를 구축하기로 결정했다. 물론 많은 리팩토리가 필요했습니다 ...하지만 효과가 있습니다. – user1170896

답변

0
  1. 그것은 프레임 워크에 연결하기 쉽게해야하기 때문에 저는 개인적으로 대신 정적 라이브러리의 정적 프레임 워크를 만드는 길을 갈 것입니다 있지만, 이론적으로 작동해야 다른 아키텍처에 대한 서로 다른 버전을 가질 수 있습니다, 동일한 패키지에 헤더를 포함합니다. Xcode에 Framework 프로젝트 유형을 추가하는이 프로젝트를 확인하십시오 : https://github.com/kstenerud/iOS-Universal-Framework. (누가 기본적으로 프레임 워크 대상 유형을 포함하도록 Apple에 입회해야합니다.)

  2. 내가 틀렸을 때 나를 고칠 수는 있지만 내가 아는 한 이해할 수 있습니다. 예, 두 라이브러리를 모두 연결해야합니다. 최종 실행 파일. 라이브러리 1에 대한 라이브러리 2를 컴파일하면 우리는 당신이 당신의 새로운 프로젝트에 정적 라이브러리를 연결하는 데 도움이 컴파일 오류에 대한보다 구체적인 정보를 얻을 필요가 라이브러리 2.

에 라이브러리 1의 코드를 결합하지 않습니다.

+0

그래, 내가 질문을 썼을 때 좌절감을 느꼈고 오류에 대해 자세히 알지 못했다. 요점은 그 오류를보고 내 코드에 특정 이후 꽤 쓸모가 없다는 것입니다. 기본적으로 인터페이스를 찾을 수 없다는 것은 (헤더 파일을 찾지 못하거나로드하지 않았다는 것을 의미합니다) 모든 헤더 검색 경로를 이중으로 체크하더라도 항상 그렇습니다. 어쩌면 CocoaPods를 기반으로하는 프로젝트 구조가 모든 것을 복잡하게 만듭니다. 라이브러리 (정적 동적) 프레임 워크와 관련된 세계를 자세히 설명하는 문서를 가르쳐 주시겠습니까? 감사합니다. – user1170896

+0

수신하는 특정 오류 메시지가 많지 않으므로 오류 유형이 길어질 수 있습니다. 컴파일러 오류입니까 (예 : '알 수없는 함수 : doStuff()') 또는 링커 오류입니까 (예 : '확인되지 않은 기호 : _doStuff'). 좋은 공식 문서 페이지가 없습니다. 나는이 책에서 대부분을 배웠다 : http://amzn.to/XvvqhD. 프레임 워크가 사용할 부분이 적어지기 때문에 동등한 효과를 얻을 수 있습니다. 이것도 참조하십시오 게시물 : http : // stackoverflow.com/questions/6245761/framework-and-static-library-in-xcode4 및 how-to-call-them의 차이점 – Chris

+0

대부분 인터페이스가 정의되지 않은 오류입니다. UIKit과 CoreGraphics가 링크 된 상태에서도 CGFloat가 정의되지 않았습니다. 그러나 나는 또 다른 아이디어를 가지고있다 : 원래 애플 리케이션 소스 코드를 포드로 감싸고 모든 포드에 의존성을 추가한다. 이렇게하면 내가 사용하는 모든 포드와 수제 포드로 새로운 작업 공간을 만들 수 있습니다. – user1170896

관련 문제