Xcode 杂七杂八

一、Exception 的捕捉

1、message send to dealloc instance

   a, 输出控制台(lldb)后面输入:c + enter, 找到对应的行
     b, po [object address name], 找到哪个原因 

2、在 appDelegate.m 里面添加下面语句

// for debug , to be remved in production
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);


// for debug , to be remved in production
-void uncaughtExceptionHandler(NSException *exception) {
    NSLog(@"CRASH: %@", exception);
    NSLog(@"Stack Trace: %@", [exception callStackSymbols]);
}

  在输出错误信息的地方,找到类似下面的信息:
    1   libobjc.A.dylib                     0x01d4bd0a objc_exception_throw + 44

  然后选择加一个breakpoint,symbloic breakpoint
    symbol name = objc_exception_throw
    module = libobjc.A.dylib

二、杂七杂八知识

  1add customerized class template to xcode

    Application -> show package content -> Developer -> Library -> Xcode -> Templates -> File Templates
      change all plist's Options -> Type "class"

  2、Xcode certificates and Provisioning 的问题。

     需要在公司的Keychain Asscess里面导出一个Certificates.p12,设置密码,拷贝到不同的电脑上打开就连接真机了。但是Provisioning还是需要在developer.apple.com上下载。

  3、改变 project 的名字

    a、slowly-double click the project name ”AppName“, 会refactor 所有有关的名字。

    b、要把 project 的文件名字改变,例如把 “AppA” 改成是 “AppB”,就需要把 AppB 重新拉进 project 里面。

    c、把 targets --> Build Settings 里面的有关于 “AppA” 的路径都手动的改成 “AppB”, 在把文件拖进 project 的时候,很可能会报 "copy bundle …info.plist",此时需要把 project 的 Build Phase, copy bundle resources 删除掉 xxx-info.plist。

    d、要改掉 Run 和 Stop 旁边的 Scheme name 的话,manage scheme 把旧的删掉,再创建一个新的。

  4、把加载时候的 default (图片的名字由设备决定)图片,从指定路径倒入操作步骤

     a, 先把 default.png, 放到指定的路径。
       b, 然后到 Targets --> Build Phases --> Compile Sources --> + --> other (指定文件)

  5、对 Xcode 提速

    文章1文章2文章3

  6、问题:每次 load 程序到设备上都要输入用户名

    原因:开发证书安装到了 System 下面了。

    解决方法:进入 Keychain Access, 把 System 里面的开发证书都搬到 Login 里面。

   7、Mac os Mavericks 把 Xcode 的 command Line tool 卸载了,安装发放 Terminal -> $"xcode-select --install"

    

8、Xcode 7 新添加了 Enable Address Sanitizer 方便对 EXC_BAD_ACCESS 的调试。

  9、OS El Captain 下运行 Xcode6.4,无法识别 iOS5.0 的设备,解决方法:

     菜单栏 “window” -> "devices" -> 选中指定的设备,右键 "show xxxxx" 即可。

原文地址:https://www.cnblogs.com/eileenleung/p/3505322.html