印出APP當前進程的相關資訊

印出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
)

並且得知它執行時有增加參數-NSDocumentRevisionsDebugModeYES