iOS相關

1. fastlane

a collection of tools that help you automate building and releasing iOS and Android apps。用中文說,就是用來構建打包的工具。可支持iOS和Android操做系統。fastlane是用Ruby語言編寫的一套自動化工具集和框架,每個工具實際都對應一個Ruby腳本,用來執行某一個特定的任務,而fastlance核心框架則容許使用者經過相似配置文件的形式,將不一樣的工具結合在一塊兒,從而造成一個個完整的自動化流程。python

詳細內容可看:自動化打包之Fastlane https://blog.csdn.net/kuangdacaikuang/article/details/80443515 。linux

舉例:npm

desc "Build beta package and upload to xx.com"
#lane表示一個打包流程 例子中,此流程名叫build_for_beta。假設咱們的App名叫myApp lane :build_for_beta do update_info_plist( plist_path: "myApp/Info.plist", display_name: "myApp_test" ) #設置plist中key1值爲value1 set_info_plist_value(path: "./myApp/Info.plist", key: "key1", value: "value1") version_number = get_version_number( xcodeproj: "./myApp.xcodeproj" ) # 打完包的產物都會以這個參數命名 myApp_archive_name = "myApp_v#{version_number}_beta" end

 

2. info.plist

info.plist是應用app的配置文件,能夠在此定義Bundle的版本號CFBundleShortVersionString,應用程序版本號CFBundleVersion,應用名稱CFBundleDisplayName,啓動圖標CFBundleIcons,應用標識號CFBundleIdentifier,是否支持後臺運行UIApplicationExitsOnSuspend,須要的權限等。如下info.plist裏定義的app名叫:myApp,版本爲5.1.0-300xcode

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleDevelopmentRegion</key>
	<string>zh_CN</string>
	<key>CFBundleDisplayName</key>
	<string>myApp</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundleShortVersionString</key>
	<string>5.1.0</string>
	<key>CFBundleVersion</key>
	<string>300</string>
	<key>DEBUG</key>
	<integer>1</integer>
	<key>NSAppleMusicUsageDescription</key>
	<string>是否容許訪問媒體資料庫?</string>
	<key>NSBluetoothPeripheralUsageDescription</key>
	<string>是否容許訪問藍牙?</string>
</dict>
</plist>

  

3. /usr/libexec/Plistbuddy

plist是Mac種很是廣泛的一種文件格式,相似xml,經過鍵值對的方式來進行一些配置。而PlistBuddy則是Mac自帶的專門解析plist的小工具詳情可參見:https://www.jianshu.com/p/2167f755c47eruby

使用plistbuddy輸出及修改版本號,命令以下:app

buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")

buildnum=$(expr $buildnum + 1)

/usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"

4. rvm

rvm是一個命令行工具,能夠提供一個便捷的多版本Ruby環境管理和切換。框架

5. gem

gem是管理ruby程序的程序,相似python下的pip 或 Node.js 裏的npm。工具

gemfile裏定義應用依賴的第三方包,bundle根據該配置尋找這些包。ui

6. brew

homebrew簡稱brew,是Mac OSX上的軟件包管理工具,相似linux裏的apt-get / yum等。經常使用命令有:spa

brew update #更新homebrew的信息

brew outdated #查看須要升級的軟件

brew upgrade xxx #指定升級某軟件

brew upgrade  #升級全部軟件

brew cleanup  

7. bundler & bundle

bundler是管理多版本gem的工具。bundle文件能夠理解爲資源文件包。咱們將許多圖片、文本文件組織在一塊兒,打包成一個bundle文件,方便在其餘項目中引用包內的資源。bundle是靜態的,不參加項目編譯,不包含可執行文件。

8. agvtool

版本和內部版本號碼Key分別指定市場和應用程序的內部版本。agvtool是一個命令行工具,它容許你這些數字自動遞增到下一個最高號碼或特定號碼。更新及查看版本號命令爲:

agvtool new-marketing-version <your_specific_version>

agvtool what-marketing-version

// build
agvtool new-version -all 1.0.0
agvtool what-version

  

9. pod & CocoPods

pod是用來管理iOS庫的工具,經過CocoaPods工具咱們能夠爲項目添加被稱爲「Pods」的依賴庫(這些類庫必須是CocoaPods自己所支持的),而且能夠輕鬆管理其版本。

相關文章
相關標籤/搜索