iOS 응용 프로그램 요청 시 버전 번호, 구축 번호 및 업데이트 자동 번호 지정

5369 단어 XcodeiOS
오래전부터..., 오래전부터 싫었지...지금 iOS 앱을 신청할 때 VersionBuild의 값을 구분해서 사용해야 한다고 생각합니다.
어렴풋이 Version 은 앱스토어에서도 표시할 수 있는 버전 번호로 신청할 때 이 버전 번호로 구축된 압축 파일을 업로드합니다.Build은(는) Version과 관련된 부차적인 업데이트 번호입니다(예:).
iTunes Connect를 신청하면 VersionBuild 그룹과 같은 바이너리 파일을 업로드할 수 없습니다.예를 들어, "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는 구축 번호입니다.왜일까!

끝날 때


이걸 쓰면서 갑자기 불평을 하다가 지방 선생님이 쓴 기사를 발견했어요.그러고 보니 전에도 봤던 기억이...
  • Xcode 버전이 될 수 있습니다.
  • Info.plist의 직접 개작에는 불안정한 기술이 있습니다.방법을 갱신하는 것이 좋겠다.자신이 소개한 방법은 이미 여러 해 동안 해 왔지만 이런 문제에 부딪히지 않았으니 내가 먼저 써 보겠다.

    좋은 웹페이지 즐겨찾기