관리 메뉴

김종권의 iOS 앱 개발 알아가기

[fastlane] 2. cocoapods, pod install 동기화 (Bundler, Bundle, gem, ruby) 본문

iOS 앱 배포와 출시

[fastlane] 2. cocoapods, pod install 동기화 (Bundler, Bundle, gem, ruby)

jake-kim 2020. 12. 1. 22:25

1. fastlane이란?

2. Bundler란? cocoapod 동기화 방법?

3. fastlane match (certificate, provisioning profile 정보를 git에 저장)

4. fastlane build_app (빌드, Firebase에 배포)

5. fastlane 앱 스토어에 배포 (App Store Connect)fastlane build_app (빌드, 배포)

6. fastlane register devices, 디바이스 정보(UDID, Name) Apple Developer 등록 방법 (register_devices)

*7. fastlane 총 정리 및 phase별 configuration 설정, 환경변수 설정

*8. fastlane Bitrise 이용한 자동 배포 구축 방법

 

cf) fastlane 환경 변수 (.env.default) 사용하여 가장 단순한 match 사용 방법

Bundle이란

  • gem은 ruby의 라이브러리
  • bundler라는 것이 Gem들을 실행
  • bundler는 Gemfile, Gemfile.lock에 기재되어 있는것을 기준으로 RubyGems.org에서 Gem을 찾아 설치

bundler로 cocoapod 이용하는 방법

  • Gemfile에 cocoapods 추가: bundler는 gemfile을 보고 실행하기 때문에 gemfile cocoapods에 종속성 추가하는 것

  • pod install명령어가 아닌 bundler로 하는 이유: pod install은 개발자 개인 로컬에 있는 cocoapods버전으로 접근하는 반면 bundler로 하면 gemfile.lock에 cocoapods버전이 고정되어 있기 때문에 동일 환경 보장
  • podfile에 아래 내용 입력
source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '14.0'
use_frameworks!

workspace 'MoyaSample'
project 'Domain/Domain.project'
project 'MoyaSample/MoyaSample.project'

def shared_pods
    pod 'RxSwift'
    pod 'RxCocoa'
    pod 'Moya'
end

target "MoyaSample" do
    project "MoyaSample/MoyaSample.project"
    shared_pods
end

target "Domain" do
    project "Domain/Domain.project"
    shared_pods
end
  • bundle exec pod install로 사용: "install_pod.sh"파일을 만들어서 편하게 사용
#!/bin/sh

cp -rf .netrc ~/.netrc # mapbox 프레임워크 같은경우 새로운 버전으로 update가 필요할때, .netrc파일을 홈디렉토리에 복사해놓아야 가능
bundle install
bundle exec pod install --repo-update # update가 없으면 동기화문제 생기는 경우 존재
  • 사용자가 실행할 수 없는 권한을 가지므로, 아래 명령어 입력하여 'x' 권한 추가
$ chmod u+x install_pod.sh
  • 실행
$ ./install_pods

 

Comments