IT story

Cocoapods를 Swift 프로젝트와 통합하는 방법은 무엇입니까?

hot-time 2020. 9. 18. 19:23
반응형

Cocoapods를 Swift 프로젝트와 통합하는 방법은 무엇입니까?


Apple 이 새로운 프로그래밍 언어 인 Swift를 소개 하면서 CocoaPods 를 통해 사용할 수있는 기존 Objective-C 라이브러리와 어떻게 통합 할 수 있는지 궁금합니다 .


Cocoapods 0.36 이상 에서는 use_frameworks!Swift에서 Objective-C 포드를 가져 오는 데 브리징 헤더가 필요하지 않음을 의미하는 지침이 도입되었습니다 .

MBProgressHUDAlamofire 를 사용하는 전체 예제를 아래에서 찾으십시오 .

1. 포드 파일

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

pod 'Alamofire', '>= 1.2.2' # Swift pod
pod 'MBProgressHUD', '>= 0.9.1' # Objective-C pod

2. 삭제

브리징 헤더에서 #imports를 제거하거나 필요하지 않은 경우 브리징 헤더 파일을 삭제하십시오. 후자의 가능성을 선택하는 경우 Xcode 프로젝트 구성에서 경로 (이 삭제 된 브리징 헤더 파일에 대한)를 삭제하는 것을 잊지 마십시오.

3. 수입품 추가

이러한 클래스가 필요한 모든 Swift 파일의 맨 위에 import MBProgressHUD및 / 또는 추가하십시오 import Alamofire.

4. 필요한 경우 열거 형 수정

이제 진정한 프레임 워크를 사용하고 있으므로 열거 형이 이동 중입니다! 다음과 같은 브리징 헤더로 괜찮은 Swift 라인이있을 수 있습니다.

progressHUD.mode = MBProgressHUDModeIndeterminate

이제 이렇게되어야합니다.

progressHUD.mode = MBProgressHUDMode.Indeterminate

큰 문제는 아니지만 많은 Objective-C 열거 형을 사용하는 경우보다 더 큰 문제가 있다는 오류 더미로 인해 길을 잃을 수 있습니다.

( 이 답변의 출처 )

참고로 : use_frameworks가 작동하는지 확인하려면 직접 테스트해야합니다. Podfile의 지침은 iOS> = 8을 대상으로하는 Xcode 프로젝트와 만 호환됩니다.


이 프로세스는 Using Swift with Cocoa 및 Objective-C 문서 Mix and Match 섹션에 설명 된 것과 유사합니다 .

  1. Podfile을 만들고 pod install.
  2. 새 Objective-C 헤더 파일 Example-Bridging-Header.h을 만들고 프로젝트에 추가합니다.
  3. 브리지 헤더에 import 문을 추가합니다 .
  4. Objective-C Bridging Header목표 설정 :

여기에 이미지 설명 입력

이제 Swift 파일에서 라이브러리 (이 경우 MKUnits)를 사용할 수 있습니다.

let kilograms = NSNumber.mass_kilogram(2)()
let pounds = NSNumber.mass_pound(10)()
let result = kilograms.add(pounds)
println(result)

더보기 : Cocoapods와 Swift 프로젝트 통합하기


업데이트 : CocoaPods 0.36 안정 버전이 출시되었습니다. 공식적으로 Swift를 지원합니다.


CocoaPods는 이제 최신 0.36 릴리스에서 Swift를 지원합니다. 아직 베타 버전이지만 작동합니다.

먼저 터미널에서 실행하여 CocoaPods 베타 (현재 베타 2)를 설치해야합니다.

sudo gem install cocoapods --pre

그게 다야. 평소처럼 Swift 라이브러리를 추가 할 수 있습니다.

그러나 CocoaPods를 통해 Objective-C로 작성된 라이브러리를 Swift 프로젝트에 추가하려는 경우 문제가 있습니다. use_frameworks!Podfile에 줄을 추가해야합니다 . 여기에 예가 있습니다.

use_frameworks!
platform :ios, '8.0'

pod 'MagicalRecord'

이것에 관한 블로그 게시물도 썼습니다 .


bridging-header.h에서 파일을 찾을 수 없음 오류가 발생하는 경우 Pod 라이브러리가 빌드 스키마에 연결되어 있는지 확인하는 것이 좋습니다.

CocoaPods 문제 해결 섹션에서는 여기 항목 # 4 에서 이를 수행하는 방법을 설명합니다.


이제 sudo gem install cocoapods신속한 프레임 워크 통합을 지원 하는 cocoapods 0.36.0 버전을 실행할 수 있습니다 . swift로 작성된 프레임 워크를 사용하는 경우 Podfile에서 명시 적으로 사용해야합니다.

platform :ios, '8.0'
use_frameworks!
pod 'Alamofire'

제 경우에는 pod를 주 대상에 추가하지 않고 여기에 설명 된대로 Podfile의 Test 및 TestUI 대상에만 추가하는 것을 발견했습니다 .

참고 URL : https://stackoverflow.com/questions/24122914/how-to-integrate-cocoapods-with-a-swift-project

반응형