iOS ProcessInfo-App獲取啟動參數(shù)

什么是啟動參數(shù)

指在APP啟動的時候,從Xcode環(huán)境變量或者命令行傳入指定的參數(shù),讓APP根據(jù)不同參數(shù)做出不同的響應(yīng)。

為何要引入啟動傳參

在Mac-App開發(fā)過程中,需要很多前置的工作,包括替換打包路徑、設(shè)置參數(shù)等等。這些前置工作都可以通過啟動參數(shù)來實現(xiàn)。使用啟動參數(shù),有利于提高測試效率。

如何實現(xiàn)啟動傳參

ProcessInfo

ProcessInfo是macOS下的進(jìn)程信息類。包含進(jìn)程的所有信息。 globallyUniqueString 獲取唯一標(biāo)識也可以用獲取時間后生成唯一標(biāo)識代替,systemUptime 上次設(shè)備重啟到現(xiàn)在的秒數(shù)這個在開發(fā)某些應(yīng)用應(yīng)該有些用處。以下僅僅列舉部分屬性或者方法。

ProcessInfo的常見屬性和方法如下:

// 創(chuàng)建系統(tǒng)進(jìn)程信息對象
    let processInfo:ProcessInfo = ProcessInfo.processInfo
        
    // 返回當(dāng)前進(jìn)程的參數(shù)
    /*
        以 NSString 對象數(shù)組的形式返回當(dāng)前進(jìn)程的參數(shù)
    */
    let processArguments:NSArray = processInfo.arguments
        
    // 返回當(dāng)前的環(huán)境變量
    let processEnvironment:NSDictionary = processInfo.environment
        
    // 返回進(jìn)程標(biāo)識符
    let processId:Int32 = processInfo.processIdentifier
        
    // 返回進(jìn)程數(shù)量
    let processCount:Int = processInfo.processorCount
        
    // 返回活動的進(jìn)程數(shù)量
    let activeProcessCount:Int = processInfo.activeProcessorCount
        
    // 返回正在執(zhí)行的進(jìn)程名稱
    let processName:String = processInfo.processName
        
    // 生成單值臨時文件名
    /*
        每次調(diào)用這個方法時,都返回不同的單值字符串,可以用這個字符串生成單值臨時文件名
    */
    let uniqueString:String = processInfo.globallyUniqueString
        
    // 返回主機系統(tǒng)的名稱
    let hostName:String = processInfo.hostName
        
    // 返回操作系統(tǒng)的版本號
    let osVerson:NSOperatingSystemVersion = processInfo.operatingSystemVersion
        
    let majorVersion:Int = osVerson.majorVersion
    let minorVersion:Int = osVerson.minorVersion
    let patchVersion:Int = osVerson.patchVersion
        
    // 返回操作系統(tǒng)名稱
    let osName:String = processInfo.operatingSystemVersionString
        
    // 設(shè)置當(dāng)前進(jìn)程名稱
    /*
        應(yīng)當(dāng)謹(jǐn)慎的使用這個方法因為關(guān)于進(jìn)程名稱存在一些假設(shè)
    */
    processInfo.processName = "test"
        
    // 判斷系統(tǒng)版本是否高于某個版本
    let opsVession:NSOperatingSystemVersion = NSOperatingSystemVersion(majorVersion: 10, 
                                                                       minorVersion: 10, 
                                                                       patchVersion: 4)
        
    let bl:Bool = processInfo.isOperatingSystemAtLeastVersion(opsVession)
        
    // 返回系統(tǒng)運行時間
    let timeInterval:NSTimeInterval = processInfo.systemUptime

獲取啟動參數(shù)

在Xcode的環(huán)境變量中配置APP啟動時注入的參數(shù),然后使用ProcessInfo的arguments屬性獲取外部參數(shù)。該屬性是一個數(shù)組,數(shù)組里保存了Xcode啟動APP時傳遞的外部參數(shù),如下:

使用ProcessInfo獲取,如下:

let processInfo:ProcessInfo = ProcessInfo.processInfo
let processArguments:NSArray = processInfo.arguments as NSArray

如此一來,我們就可以通過processInfo獲取到所有的外部參數(shù)。

shell腳本啟動應(yīng)用并傳入?yún)?shù)

!/bin/sh

cd /Applications/
open 唯變自動化.app --args /Users/eddy/Desktop/UnityDemo-Test

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容