NSProcessInfo

概述

iOS 开发中,常常需要在 App 启动时替换域名、指定mock/代理服务器地址、关闭长连接、启动后跳转到指定页面、自动登录、设置经纬度等等。这些前置工作都可以通过启动传参来实现。使用启动传参,有利于提高开发效率。

如何启动传参

NSProcessInfo

NSProcessInfo 是 macOS 和 iOS 下的进程信息类。包含进程的所有信息。
NSProcessInfo的常见属性和方法如下:

NSProcessInfo *info = [NSProcessInfo processInfo];
NSLog(@"%@",info.environment);                          // 获取运行该进程的系统的环境变量 
NSLog(@"%@",info.arguments);                            // 获取运行该进程的参数
NSLog(@"%@",info.globallyUniqueString);                 // 获取唯一的标示符,每次调用都会不一样,可以用作一些临时缓存文件的名字
NSLog(@"%f",info.systemUptime);                         // 上次设备重启到现在的秒数
NSLog(@"%@",info.hostName);                             // 获取主机名称
NSLog(@"%@",info.processName);                          // 获取该进程的进程名
NSLog(@"%d",info.processIdentifier);                    // 获取该程序的进程标示符
NSLog(@"%@",info.operatingSystemVersionString);         // 系统版本(可用[UIDevice currentDevice].systemVersion代替)
NSLog(@"%lu",info.processorCount);                      // 获取当前项目进程数量
NSLog(@"%lu",info.activeProcessorCount);                // 获取当前项目活跃进程数量
NSLog(@"%llu",info.physicalMemory);                     // 设备的CPU物理内存(单位:byte)
NSLog(@"%d",info.automaticTerminationSupportEnabled);   // 是否支持自动终止(仅限MAC OS)
- (void)disableSuddenTermination                        // 禁止应用突然被干掉(仅限MAC OS)
- (void)enableSuddenTermination                         // 允许应用突然被干掉(仅限MAC OS)
- (void)disableAutomaticTermination:(NSString *)reason  // 禁止应用突然被干掉的理由(仅限MAC OS)
- (void)enableAutomaticTermination:(NSString *)reason   // 允许应用突然被干掉的理由(仅限MAC OS)

其中 environment 是一个 NSDictionary,App 可以通过这个属性获取到所有的环境变量,比如替换 userId、关闭长连接、设置 mock server等等
而 arguments 是一个数组,可以获取运行该进程的参数。对于通过命令行启动 App 时传参特别方便。如 tidevice 启动 App 时,tidevice launch bundleID aaa,其中 aaa 即为启动参数,App 通过 arguments 即可获得

Xcode 实现启动传参

在 Xcode 的环境变量中配置 App 启动时注入的参数,然后使用 NSProcessInfo的 environment 属性获取环境变量。该属性是一个字典,字典里保存了 Xcode启动 App 时传递的环境变量,如下:
Target -> Edit Scheme -> Run -> Arguments -> Environment Variables 点击+ 添加环境变量
备注:
环境变量一: OS_ACTIVITY_MODE
Xcode8 打印台输出乱七八糟的东西,可以设置 OS_ACTIVITY_MODE 为disable。

环境变量二:DYLD_PRINT_STATISTICS
设置 DYLD_PRINT_STATISTICS 为YES,控制台就会打印 App 的加载时长,包括整体加载时长和动态库加载时长。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容