印出APP當前進程的相關資訊
當你的APP被使用者執行時,系統會產生進程(當前執行時)的資訊,你可以利用Framework取得當下執行的環境、APP程序的ID、執行參數…等,還有一些與自已APP相關的資訊,然而這些資訊都包含在NSProcessInfo
之中。
範例:
//-----------start----------- NSProcessInfo *processInfo = [NSProcessInfo processInfo]; NSLog(@"environment:%@",[processInfo environment]); NSLog(@"globallyUniqueString: %@", [processInfo globallyUniqueString]);//不重覆的值 NSLog(@"hostName: %@", [processInfo hostName]);//主機名稱 NSLog(@"processIdentifier: %d", [processInfo processIdentifier]);//進程編號 NSLog(@"processName: %@", [processInfo processName]); NSLog(@"operatingSystem: %ld", [processInfo operatingSystem]);//作業系統號碼,5為Mac NSLog(@"operatingSystemName: %@", [processInfo operatingSystemName]);//作業系統名稱 NSLog(@"operatingSystemVersionString: %@", [processInfo operatingSystemVersionString]);//作業系統版本 NSLog(@"processorCount: %ld", [processInfo processorCount]); NSLog(@"activeProcessorCount: %ld", [processInfo activeProcessorCount]); NSLog(@"physicalMemory: %qu", [processInfo physicalMemory]); NSLog(@"args: %@", [processInfo arguments]); //------------end------------
結果:
2014-08-14 22:53:14.608 NSTaskDemo[34851:303] environment:{ "Apple_PubSub_Socket_Render" = "/tmp/launch-sA4BfM/Render"; "DYLD_FRAMEWORK_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug"; "DYLD_LIBRARY_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug"; HOME = "/Users/danny"; LOGNAME = danny; MallocNanoZone = 1; NSUnbufferedIO = YES; PATH = "/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"; PWD = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug"; SHELL = "/bin/bash"; "SSH_AUTH_SOCK" = "/tmp/launch-SgE9fn/Listeners"; TMPDIR = "/var/folders/2w/90t6mw6j4rv6tvg9d3x9v7q40000gn/T/"; USER = danny; "__CF_USER_TEXT_ENCODING" = "0x1F5:2:53"; "__CHECKFIX1436934" = 1; "__XCODE_BUILT_PRODUCTS_DIR_PATHS" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug"; "__XPC_DYLD_FRAMEWORK_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug"; "__XPC_DYLD_LIBRARY_PATH" = "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug"; } 2014-08-14 22:53:14.609 NSTaskDemo[34851:303] globallyUniqueString: 7490E519-8575-42A6-8F40-859E5FCBD04C-34851-000076E66352D518 2014-08-14 22:53:14.949 NSTaskDemo[34851:303] hostName: danny-mbp13.local 2014-08-14 22:53:14.949 NSTaskDemo[34851:303] processIdentifier: 34851 2014-08-14 22:53:14.950 NSTaskDemo[34851:303] processName: NSTaskDemo 2014-08-14 22:53:14.950 NSTaskDemo[34851:303] operatingSystem: 5 2014-08-14 22:53:14.951 NSTaskDemo[34851:303] operatingSystemName: NSMACHOperatingSystem 2014-08-14 22:53:14.953 NSTaskDemo[34851:303] operatingSystemVersionString: Version 10.9.4 (Build 13E28) 2014-08-14 22:53:14.953 NSTaskDemo[34851:303] processorCount: 4 2014-08-14 22:53:14.953 NSTaskDemo[34851:303] activeProcessorCount: 4 2014-08-14 22:53:14.954 NSTaskDemo[34851:303] physicalMemory: 8589934592 2014-08-14 22:53:14.954 NSTaskDemo[34851:303] args: ( "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug/NSTaskDemo.app/Contents/MacOS/NSTaskDemo", "-NSDocumentRevisionsDebugMode", YES )
範例程式因為是透過Xcode直接執行結果,所以也可以間接的知道透過Xcode直接執行時,APP的執行路徑是在哪個位置,此範例的執行路徑是在:
args: ( "/Users/danny/Library/Developer/Xcode/DerivedData/NSTaskDemo-ckheioijpuswrhbjkpvxesyvyloo/Build/Products/Debug/NSTaskDemo.app/Contents/MacOS/NSTaskDemo", "-NSDocumentRevisionsDebugMode", YES )
並且得知它執行時有增加參數-NSDocumentRevisionsDebugMode
、YES
。