在main.m 中 添加一行代碼即可
setenv("OS_ACTIVITY_MODE", "disable", 1);
最終效果如下
// Created by iOSwangzi on 16/10/20.
// Copyright ? 2016年 iOSwangzi. All rights reserved.
#import <UIKit/UIKit.h>
#import "AppDelegate.h"
int main(int argc, char * argv[]) {
@autoreleasepool {
setenv("OS_ACTIVITY_MODE", "disable", 1);
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
順便普及一下以下幾個函數(shù)
/** *getenv(取得環(huán)境變量內(nèi)容)
*定義函數(shù) char * getenv(const char *name);
*函數(shù)說明 getenv()用來取得參數(shù)name環(huán)境變量的內(nèi)容。
*參數(shù)說明 *name為環(huán)境變量的名稱,如果該變量存在則會返回指向該內(nèi)容的指針。
*環(huán)境變量的格式為name=value。
*返回值:執(zhí)行成功則返回指向該內(nèi)容的指針,找不到符合的環(huán)境變量名稱則返回NULL。
*/
- (void)getenv_test:(char *)env_name{
if(getenv(env_name)) {
printf("%s's value = %s",env_name,getenv(env_name));
}
}
/** *putenv(改變或增加環(huán)境變量)
*定義函數(shù) int putenv(const char * string);
*函數(shù)說明:putenv()用來改變或增加環(huán)境變量的內(nèi)容。
*參數(shù) *string的格式為name = value,
*如果該環(huán)境變量原先存在,則變量內(nèi) 容會依參數(shù)string改變,否則此參數(shù)內(nèi)容會成為新的環(huán)境變量。
*返回值:執(zhí)行成功則返回0,有錯誤發(fā)生則返回-1。
*/
- (void)putenv_test{
char *env_name = "test_two";
if(putenv(env_name) == 0) {
printf("%s = %d",env_name,putenv("test_two = two"));
}
}
/** *unsetenv(移除環(huán)境變量) *定義函數(shù) unsetenv(const char *string);
*函數(shù)說明:unsetenv()用來改變或增加環(huán)境變量的內(nèi)容。
*參數(shù) *string為環(huán)境變量的名稱,
*如果該環(huán)境變量原先存在,則移除該環(huán)境變量。
*返回值:執(zhí)行成功則返回0,有錯誤發(fā)生則返回-1。
*/
- (void)unsetenv_test{
char *env_name = "test_one";
if(unsetenv(env_name) == 0) {
printf("%s is unseted = %s",env_name,unsetenv(env_name) == 0 ? "yes" : "no");
}
}
/**setenv(改變或增加環(huán)境變量)
*定義函數(shù) int setenv(const char *name,const char * value,int overwrite);
*函數(shù)說明 setenv()用來改變或增加環(huán)境變量的內(nèi)容。
*參數(shù) name為環(huán)境變量名稱字符串。
*參數(shù) value則為變量內(nèi)容。
*參數(shù) overwrite用來決定是否要改變已存在的環(huán)境變量。 如果overwrite不為0,則改變環(huán)境變量原有內(nèi)容,原有內(nèi)容會被改為參數(shù)value所指的變量內(nèi)容。 如果overwrite為0,且該環(huán)境變量已有內(nèi)容,則參數(shù)value會被忽略。 *返回值 執(zhí)行成功則返回0,有錯誤發(fā)生時返回-1
*/
- (void)setenv_test{
char *env_name = "test_one"; char *env_value = "ooops";
if(setenv(env_name,env_value,1) == 0) {
printf("%s is seted = %s",env_name,setenv(env_name,env_value,1) == 0 ? "success" : "failed");
}
}
如果想要以后新建立的項目自動加上去掉打印的代碼,可以修改Xcode的模版
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project\ Templates/iOS/Application/Cocoa\ Touch\ Application\ Base.xctemplate
在這個路徑下面找到TemplateInfo.plist文件打開修改一個key為main.m:main:UIApplicationMain代碼如下
<key>main.m:main:UIApplicationMain</key>
<string>@autoreleasepool {
/* * 此行代碼是增加的代碼 */
setenv("OS_ACTIVITY_MODE", "DISABLE", 1);
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
其目的是為了,在創(chuàng)建的Xcode項目的入口文件中增加添加環(huán)境變量的操作
至此解決Xcode8創(chuàng)建新項目,控制臺瞎雞吧的打印就沒了!