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