iOS 응용 프로그램 요청 시 버전 번호, 구축 번호 및 업데이트 자동 번호 지정
Version
과Build
의 값을 구분해서 사용해야 한다고 생각합니다.어렴풋이
Version
은 앱스토어에서도 표시할 수 있는 버전 번호로 신청할 때 이 버전 번호로 구축된 압축 파일을 업로드합니다.Build
은(는) Version
과 관련된 부차적인 업데이트 번호입니다(예:).iTunes Connect를 신청하면
Version
및 Build
그룹과 같은 바이너리 파일을 업로드할 수 없습니다.예를 들어, "Version=1.0.0, Build=1"에 구축된 바이너리 파일이 업로드된 경우 "Version=1.0.0, Build=1"의 바이너리 파일을 더 이상 업로드할 수 없습니다.만약 심사 전에 업데이트하고 싶은 문제가 있다면, 통상적으로 "Version=1.0.0, Build=2"느낌으로 Build
번호를 증가시킵니다.하지만 이 번호는 소박하고 번거롭다.아니면 이 값의 개작을 저장소에 제출해야 할지 고민입니다.솔직하게 말하다.
따라서 구축할 때
Version
, Build
의 값을 자동으로 반영하려고 합니다.git로 관리하는 것을 전제로 한다.진입
Version
의 값은 gittag로 추가된 탭의 이름에 직접 들어가기 때문에 git tag 2.1.6 -m ""
처럼 미리 탭을 추가해야 합니다.Build
제출 횟수가 포함되어 있습니다.일생 동안 지속적으로 증가하는 값이다.그리고
COMMIT_HASH
의 이름으로 최종적으로 제출한 해시 값을 저장합니다.구현 방법
스크립트 준비
적당한 곳에 다음 각본을 준비하세요.예를 들어 auto-versioning.파이라는 이름을 써달라고요?
#! /usr/bin/python
# -*- coding: utf-8 -*-
import os
from subprocess import Popen, PIPE
from Foundation import NSMutableDictionary
version_number = os.popen4("git describe --abbrev=0")[1].read().strip()
build_number = os.popen4("git log --oneline | wc -l")[1].read().strip()
commit_hash = os.popen4("git log -1 --pretty=format:'%h'")[1].read().strip()
info_plist = os.environ['TARGET_BUILD_DIR'] + "/" + os.environ['EXECUTABLE_FOLDER_PATH'] + "/Info.plist"
plist = NSMutableDictionary.dictionaryWithContentsOfFile_(info_plist)
# プロダクションバージョン番号
plist['CFBundleShortVersionString'] = version_number
# ビルド番号
plist['CFBundleVersion'] = build_number
# git ハッシュ
plist['COMMIT_HASH'] = commit_hash
plist.writeToFile_atomically_(info_plist, 1)
Xcode 준비
Build Phases
뒤에 Run Script
를 추가하고 방금 스크립트를 셸 명령으로 지정합니다.python "${SRCROOT}/auto-versioning.py"
여기서 마치겠습니다.이런 상태에서 구축하면 구축된 2진법에 버전 번호와 구축 번호를 자동으로 추가하여 기분이 좋아요!
참고로 이해하기 어렵지만 코드에서 값을 참조한 경우
CFBundleShortVersionString
는 버전 번호CFBundleVersion
는 구축 번호입니다.왜일까!끝날 때
이걸 쓰면서 갑자기 불평을 하다가 지방 선생님이 쓴 기사를 발견했어요.그러고 보니 전에도 봤던 기억이...
Reference
이 문제에 관하여(iOS 응용 프로그램 요청 시 버전 번호, 구축 번호 및 업데이트 자동 번호 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takayama/items/89c57c4a1138cd759d9e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)