문제

나는 다음 템플릿을 기반으로 iOS 프레임워크를 작업 중입니다. https://github.com/jverkoey/iOS-프레임워크

이제 조금 다듬고 적절한 빌드/마케팅 번호로 버전 관리 시스템을 설정해야 합니다.

이 프레임워크 프로젝트에는 3개의 대상이 있습니다. 첫 번째는 정적 라이브러리를 생성하고, 두 번째는 리소스 번들을 생성하며, 세 번째는 정적 라이브러리와 리소스 번들의 집계 대상입니다.따라서 첫 번째 문제는 어떤 대상에서 버전 관리 빌드 설정을 구성해야 하는지(또는 모든 대상을 구성해야 하는지) 결정하는 것입니다.

두 번째 질문은 구성해야 하는 설정이 무엇이고 그 의미가 무엇인지입니다.

현재 프로젝트 버전 => 빌드 버전인가요, 아니면 마케팅 버전인가요?따라서 다음과 같은 버전의 앱을 출시한다면:1.2.3.4, 4로 설정해야 하나요?아니면 1.2.3?아니면 1.2.3.4?

생성된 버전 관리 소스 파일 이름 => 정수 빌드 번호를 포함하는 생성된 .c 파일의 이름이 아닐까요?

생성된 버전 관리 변수 => 그게 무엇인가요?

버전 관리 이름 접두사 => 빌드 번호가 포함된 변수 이름의 접두사

버전 관리 이름 접미사 => ​​빌드 번호가 포함된 변수 이름의 접미사

버전 관리 시스템:모두가 Apple Generic을 사용하므로 이것이 유일한 제품인 것 같습니다.

버전 관리 사용자 이름:그것은 무엇입니까?

iOS에서는 항상 "A"를 사용해야 하는 "패키징" 섹션의 "프레임워크 버전"과 같은 다른 설정이 있습니다(실제로 정적 프레임워크이기 때문에 버전은 중요하지 않습니다).그리고 "링크" 섹션의 "호환성 버전"/"현재 라이브러리 버전" ​​설정의 경우 정적 라이브러리 대상에서만 구성해야 합니까?아니면 라이브러리를 연결하는 응용 프로그램에서 사용됩니까?

도움이 되었습니까?

해결책

상업적인 비공개 소스 프레임워크를 구축하지 않는 한, 나는 정말로 사용하는 것이 좋습니다 코코아 포드.종속성, 리소스, 버전 관리, 업데이트, 설치 등을 처리합니다.시간이 지남에 따라 라이브러리가 변경됨에 따라 모든 큰 골칫거리가 발생합니다.

비공개 소스 코드에 대한 바이너리만 배포하려는 경우에도 CocoaPods로 바이너리를 빌드한 다음 다른 Podspec으로 배포할 수 있습니다.또한 실제로는 좋지 않지만 일반적인 관행인 다른 라이브러리 코드를 삽입하는 것을 피할 수 있습니다.

버전 관리에 관해서는 확인할 수 있습니다 여기.


정적 라이브러리 만들기로 돌아가서...

버전은 앱에 표시되지 않으며 단지 문서일 뿐이므로 모든 대상에 추가해야 한다고 생각합니다.런타임에 라이브러리 버전을 실제로 감지하려면 다음과 같은 클래스 메서드나 전역 변수를 만들어야 합니다. [MyLibrary version].

해당 키에 대한 문서는 Xcode에 포함되어 있거나 하나를 선택하고 "빠른 도움말" 창을 확인할 수 있습니다.

enter image description here

다른 팁

Apple은 프레임워크 구축 및 배포에 대한 매우 광범위한 문서를 보유하고 있습니다.

그만큼 프레임워크 프로그래밍 가이드 필요한 대부분의 영역을 다룹니다.개발자 도구가 프로젝트의 정보를 사용하는 방법에 대한 자세한 정보를 원하면 매뉴얼 페이지를 참조하십시오. agvtool, Xcode가 Apple 버전 관리 시스템과 함께 사용하는 도구입니다.

당신은 또한에 관심이 있어야합니다 코코아 코딩 지침, 프레임워크에 대한 몇 가지 모범 사례도 다루고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top