CocoaPod 코드 라이브러리 생성, Spec이 밟은 구덩이 설정

2514 단어 iOS

공식 설명서:https://guides.cocoapods.org/syntax/podspec.html


1. 코드에 정적 라이브러리 포함


4
s.vendored_libraries = '/Pod/Classes/*.a'
공식 문서:https://guides.cocoapods.org/syntax/podspec.html#vendored_libraries

2. ARC 프로젝트의 일부 파일은 MRC입니다.


subspec를 만들어서 mrc 파일을subspec에 추가해야 합니다. 필요하면 주 스펙에 exclude 를 설정하십시오.두 스펙트럼 모두 mrc 파일을 포함하지 않도록 files에서 제외합니다.
  non_arc_files = 'Pod/Classes/lib/OpenUDID/*','Pod/Classes/lib/Regex/*','Pod/Classes/lib/ZipArchive/*'
  s.exclude_files = non_arc_files
  s.subspec 'no-arc' do |sna|
  sna.requires_arc = false
  sna.source_files = non_arc_files
  end

3, lib 및 frameworks

  s.frameworks = 'UIKit', 'MapKit','libicucore.A'
  s.ios.library = 'icucore'

https://guides.cocoapods.org/syntax/podspec.html#frameworks
https://guides.cocoapods.org/syntax/podspec.html#libraries

4.pod 라이브러리 간의 의존

  s.dependency 'FMDB', '~> 2.5'
  s.dependency 'OpenUDID', '~> 1.0.0'
  s.dependency 'ZipArchive', '~> 1.01h'
https://guides.cocoapods.org/syntax/podspec.html#dependency

5. 소스 코드 라이브러리는 tag뿐만 아니라 branch도 다음과 같이 지정할 수 있다.

s.source           = { :git => "http://gitlab.xsl.com:10080/iosteam/XSLUser.git", :branch => 'master' }

참고:
만약 branch의 코드에 변동이 생기면, 사용자가pod install이나pod update를 직접pod 하면 안 됩니다.
branch나 tag에 대한pod의 코드가 로컬에 캐시가 있기 때문에clean 캐시를 한 다음pod install 또는pod update가 필요합니다
4
pod cache clean PodName
pod 디렉토리의 파일도 삭제해야 함
4
if [ -d /Pods/XSLUser ];then
rm -fr /Pods/XSLUser
fi
마지막에 실행
pod update --no-repo-update

6. 사유 리포 내pod 라이브러리 간의 상호 의존lint가 통과할 수 없는 문제--sources=사유 리포,master,...


s.dependency'FMDB','~>2.5'이 FMDB는 리포 마스터의 라이브러리일 수도 있고 개인 리포의 라이브러리일 수도 있다.
개인 리포의 라이브러리라면, lint에서 설명해야 합니다.
$pod spec lint QZCrashLogManager.podspec --allow-warnings --sources=xsl-mobile-cocoaspecs,master

lint 통과 후 push 시 여전히 필요 - sources
$pod repo push zhiguang-repo QZCrashLogManager.podspec --allow-warnings --sources=xsl-mobile-cocoaspecs,master

주: xsl-mobile-cocoaspecs는 제가 만든 개인 리포입니다. 개인 리포를 어떻게 만드는지에 대해서도 간단한 전송문입니다.

7、또 하나의 갱 전송문

좋은 웹페이지 즐겨찾기