Xcode技巧 - 1

来源:互联网 发布:linux 读音 编辑:程序博客网 时间:2024/06/14 02:23

收录一些小技巧:

1.

在调试框双击,调试窗口会弹到最大:


一下子就可以弹到最大化

在最大化状态下,双击又可以还原成隐藏状态




2.

证书的设置规范如下:


以前设置证书都是这样:


这样的问题会造成:


Team的设置导致不一致,例如早前的坑,PP助手的动态库需要用企业签名,但是你出工程用了不是相应的Team或者开发者,导致失败!

如图:





3.

URL Types的设置和处理:

URL Schemes 一般设置成 “前缀” + bundleID 值   ,  Role :Editor

例如:BDM- + "bundleID"


37WAN + "bundleID":


而关于这个 “前缀” 的处理代码如下,以阿里pay为例:

    NSData* data = FBDecodeBase64(str);    NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];    NSString* paramStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];    NSArray* array=[[NSArray alloc] initWithArray:[infoDictionary objectForKey:@"CFBundleURLTypes"]];    NSString* appBunldId = [infoDictionary objectForKey:@"CFBundleIdentifier"];    NSString* callBackURLString = NULL;        for (int i = 0; i <[array count]; i++)    {        id object = [array objectAtIndex:i];        if ([object isKindOfClass:[NSDictionary class]])        {            NSDictionary* dic = (NSDictionary *)object;            NSArray *allKeysArray = [dic allKeys];            for (int k = 0; k < [allKeysArray count]; k++)            {                NSString *keyString = [allKeysArray objectAtIndex:k];                if ([keyString isEqualToString:@"CFBundleURLSchemes"])                {                    NSArray *tempArray = [dic objectForKey:keyString];                    for (int j= 0; j<[tempArray count] ; j++)                    {                        NSString* tempCallBackStr = [[tempArray objectAtIndex:j] substringWithRange:NSMakeRange(0,[[tempArray objectAtIndex:j] length])];                        NSLog(@"37SDK:Temp URLSchemes is %@",appBunldId);                                                if ([tempCallBackStr isEqualToString:[NSString stringWithFormat:@"37WANSDK%@",appBunldId]])                        {                            callBackURLString = tempCallBackStr;                            k = -1;                            break;                        }                    }                    if (k == -1)                    {                        i = -1;                        break;                    }                }            }            if (i == -1)            {                break;            }        }    }



4.

引用路径:

一般的导入framework的引用路径是十分简单的,只要:Link Frameworks Automatically 设置成Yes即可以自动地导入路径


难点在于如果是内嵌工程的:例如:


SQGame内的文件如果要用到BDGameSDK里面的frameworks怎么办?

我们可以看到文件的结构路径如下:



即:SQGame工程(SQGame.xcodeproj)所在目录想要引用上一级目录LibTest下的DBGameSDK的frameworks : (只用到了frameworks,如图)


这样引用路径就配好啦!




5.

Xcode中的属性文件我们常常想要用源码的方式打开,只要右键以源码的形式打开即可






0 0