自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談iOS版本號(hào):開發(fā)者對(duì)如何更好的用版本號(hào)標(biāo)示應(yīng)用

移動(dòng)開發(fā) iOS
一直在盡量兼容不同使用習(xí)慣的版本號(hào)形式, 但是在使用中我們發(fā)現(xiàn)好多開發(fā)者對(duì)怎么更好的用版本號(hào)來標(biāo)示應(yīng)用很陌生. 這是篇基礎(chǔ)文章, 簡(jiǎn)單介紹 iOS 的版本號(hào).

一直在盡量兼容不同使用習(xí)慣的版本號(hào)形式, 但是在使用中我們發(fā)現(xiàn)好多開發(fā)者對(duì)怎么更好的用版本號(hào)來標(biāo)示應(yīng)用很陌生. 這是篇基礎(chǔ)文章, 簡(jiǎn)單介紹 iOS 的版本號(hào).

version-1.jpg

名詞解釋

  • Version, 通常說的版本號(hào), 是應(yīng)用向用戶宣傳說明時(shí)候用到的標(biāo)識(shí). 一般有2段或者3段式, 如:2.1,8.1.2

Version 一般由產(chǎn)品部門確定, 完全迥異的更新需要改變主版本號(hào), 比如 QQ 4.0 的變化非常大, 主版本的變化會(huì)更加吸引用戶的眼球,所以有的應(yīng)用會(huì)頻繁的更新主版本號(hào), 比如 FireFox 20.0 . 兩段式的副版本號(hào)既包含小功能更新也會(huì)包含 bug 修復(fù)等,三段式副版本基本都是新功能添加和大問題修復(fù),第三段則表示穩(wěn)定版本基本都是修復(fù) bug

  • Build , 編譯號(hào)指一次唯一編譯標(biāo)識(shí), 通常是一個(gè)遞增整數(shù)(安卓強(qiáng)制為數(shù)字, iOS 可以是字符串)

Build 都是給內(nèi)部使用, 用來確定一個(gè)唯一版本. 與前面提到的 Version 不會(huì)有太大聯(lián)系.

iOS 開發(fā)中,這個(gè)2個(gè)號(hào)碼都可以任意字符串或數(shù)字.

我們目前遇到的情況有:

  • 忽略了 Version 或 Build. 這兩個(gè)號(hào)中的一個(gè)常年的不會(huì)發(fā)生變化.
  • 顛倒了 Version 和 Build.

version-2.jpg

獲取方法也很簡(jiǎn)單:

NSDictionary *info= [[NSBundle mainBundle] infoDictionary];

info[@"CFBundleShortVersionString"]; //Version
info[@"CFBundleVersion"]; // Build

為什么使用版本號(hào)

1. 方便標(biāo)示和溝通

前面提到 版本號(hào)更新會(huì)給推廣產(chǎn)生一定的積極作用. 所以版本號(hào)不要太長(zhǎng), 如果像這樣 "我們隆重推出了 某某某 1.7.14.19257 !", 這個(gè)會(huì)讓用戶感覺很乏味很像電視購(gòu)物,而且也不利于傳播. 如果是 "某某 3.0, 大有不同 !"可能就會(huì)產(chǎn)生更好的溝通效果.

2. 方便追蹤 Bug

一個(gè)應(yīng)用有 Bug 是肯定的, 但是很快的定位解決問題卻體現(xiàn)出團(tuán)隊(duì)和程序員的能力. 我們經(jīng)常遇到有開發(fā)者說我提交一個(gè)版本, 但是下載下來有還是舊的. 我們幫他解決問題的時(shí)候,他自己都搞不清哪個(gè)是哪個(gè)了, 如果能在"關(guān)于"之類的地方顯示當(dāng)前的版本, 就會(huì)容易找到問題.

或者是測(cè)試團(tuán)隊(duì)的同事, 可能手里同時(shí)有幾個(gè)不同分支的版本在測(cè)試, 他們需要精確的描述一個(gè)測(cè)試版本.

自動(dòng)改變 Build 號(hào)

前面提到, Version 是不需要自動(dòng)變化的, 根據(jù)產(chǎn)品或者市場(chǎng)部門的需求,適時(shí)的手動(dòng)改一下就好.

1. agvtool (Apple-generic versioning tool)

agvtool, 是蘋果的命令行工具, 也是集成在 Xcode 中最方便的工具. 我們?cè)谧詣?dòng)編譯 SDK 的腳本中用的就是這個(gè)方法. 其實(shí)就用了一行(其他的高級(jí)用法可以參考前面的鏈接):

agvtool next-version

使用前需要在 Xcode 里簡(jiǎn)單配置一下, 如圖:

version-3.jpg

2. 基于SCM的版本控制號(hào)

SCM 現(xiàn)在常用的有 Git 和 SVN, 還有一些相對(duì)小眾的比如 hg 這里就不多做介紹了.
如果用 Git/SVN 來管理代碼(詳細(xì)已經(jīng)沒有人不用了) 我們可以用代碼的提交次數(shù)來代替Build號(hào).

  • Git
REV=`git rev-list HEAD | wc -l | awk '{print $1}'`

其中 HEAD是分支名, 代表當(dāng)前分支, 可以直接替換成其他分支名, 比如master,dev.
這個(gè)腳本放到

  • SVN
REV=`svnversion -nc | sed -e 's/^[^:]*://;s/[A-Za-z]//'`

后面都是一樣的:

PlistBuddy -c "Set :CFBundleShortVersionString ${REV}" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}

這樣每次編譯app的時(shí)候就自動(dòng)把版本號(hào)加到Info.plist的CFBundleShortVersionString鍵值下

把上面2行代碼 加到 "Build Phase > Run Script"就可以了:

version-4.jpg

3. 基于日期時(shí)間

用發(fā)布日期作為版本好也是許多應(yīng)用常用的方式, 因?yàn)楹糜浐美斫? 這里直接附上代碼:

REV=`date +%y%m%d`  #輸出格式141120的六位日期格式,可以根據(jù)自己喜歡改變格式

后面都是一樣的:

PlistBuddy -c "Set :CFBundleShortVersionString ${REV}" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}

使用方法同上.

怎么使用

只要配置好了版本號(hào), 其他的事情就不需要人工干預(yù)了, 這里介紹2種使用場(chǎng)景.

1. Crash 收集

收集 Crash 是應(yīng)用開發(fā)必要的環(huán)節(jié), 通過分析和修復(fù) Crash 信息可以大大提高應(yīng)用的穩(wěn)定性而不會(huì)讓更多的用戶失望甚至刪除應(yīng)用.
目前有很多收集工具, 比如 FIR.im 旗下的BugHD, Crashlytics等.

version-5.jpg

2. 用戶反饋

能主動(dòng)反饋問題的用戶都是極品用戶, 不管要求是不是合理我們都要認(rèn)真對(duì)待.
不管是用各種 SDK 還是用 Email 都要盡量的帶上版本號(hào), 系統(tǒng)信息, 方便確認(rèn)用戶需求.最不濟(jì)也要在"關(guān)于"里面能讓用戶找到相關(guān)的版本信息以便描述問題.

責(zé)任編輯:閆佳明 來源: segmentfault
相關(guān)推薦

2020-12-09 19:34:53

Edge 89瀏覽器更新

2017-03-30 16:56:43

Windows 10Windows版本號(hào)

2010-11-08 10:07:45

Chrome

2017-02-08 14:29:04

2019-09-19 15:15:20

LinuxMint版本號(hào)

2010-06-28 10:13:17

SQL Server

2023-02-27 14:51:40

MySQL數(shù)據(jù)庫(kù)

2015-07-22 10:09:59

Android M版本號(hào)

2010-02-06 13:49:08

Linux samba

2023-01-09 17:46:07

項(xiàng)目版本號(hào)字段

2024-07-08 13:56:12

微服務(wù)API代碼

2019-11-04 14:20:47

APP版本移動(dòng)端命名

2017-02-22 09:30:41

2010-07-09 13:01:50

SQL Server

2021-11-30 10:49:58

Microsoft SWindows版本號(hào)

2021-08-11 08:32:24

Firefox英特爾LLVM

2009-02-12 16:31:39

Windows7貝塔版本號(hào)

2010-06-30 16:41:02

識(shí)別SQL Serve

2009-08-04 08:36:54

Windows 7查看系統(tǒng)版本號(hào)

2023-01-03 08:26:56

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)