Xcode是iOS开发主要的工具、IDE。关于Xcode的细枝末节,可以参考苹果的官方文档或者众多的说明。此文档主要涉及常用开发和调试注意事项,参考版本为Xcode 5.1.1。

目标设置:

在此,我就不区分Project和Target了,这两方面有很多共同的设置,所以只需要了解需要设置哪些子项就可以了。

  1. Deployment Target:设置支持的最低设备版本,这个根据代码的API支持情况而定
  2. Base SDK:理论上应该设置为最新版本的SDK,以支持最高版本
  3. Identity:设置Bundle Identifier(即AppId)、Version(版本号)、Build(编号)
  4. Architecture:用于指定编译的目标架构,包括armv64、armv7、armv7s
  5. App Icons、Launch Images:设置各种标准图标
  6. Compiler:现在都默认为Apple LLVM,这是苹果专为C、C++、OC开发的编译器
  7. Other Linker Flags:当引用第三方静态链接库时,需要加上-ObjC和-all_load
  8. Info.plist File:指定项目的配置信息文件.plist,当然可以自己新建其他配置信息文件以供代码中使用
  9. Prefix Header:前提是Precompile Prefix Header为Yes,指定了预编译头文件.pch
  10. Search Paths:主要设置第三方引用的搜索路径,这就包括Framework(框架)、Header(头文件)、Library(静态链接库)
  11. Linked Frameworks and Libraries:管理引用的框架和链接库
  12. Code Signing Identity:主要设置本应用AppId产生的Debug、Distribution、Release三种模式的证书,来源为钥匙串
  13. Provisioning Profile:主要设置本应用AppId和相应证书生成的概要配置文件,来源也是钥匙串,并且会决定Code Signing Identity中对应模式的备选证书

编译调试设置:

  1. 设置当前活动的模式:位于Xcode左上角的选项,包括设置目标项目和模拟器版本。例如需要先编译静态链接库或者改变启动项目。
  2. 编辑模式:点击桌面菜单栏的Product->Scheme->Edit Scheme,可以设置更详细
  3. 运行调试:可以直接点击“播放”按钮,也可以在菜单栏中的product子项中选择 run、Build For、Build、Clean等。

Archive打包设置:

  1. 在编译调试设置的第二条显示界面中,选择左边的Archive,再设置Build Configuration项为Distribution
  2. 将模拟器选择项设置为“iOS Device”(连接设备时,即为当前设备名称)
  3. 在编译调试设置的第三条中,选择Archive(此前为灰色状态)

代码区自定义:

选择左上角的Xcode->Preferences进入Xcode设置界面。

Fonts&Colors:用于设置代码编辑区的背景和字体样式

Text Editing:用于显示行数、自动填充代码等等

Key Bindings:显示快捷键操作,也可自定义快捷键

模拟器使用简介:

模拟器是用于仿真iPhone和iPad运行,显示App界面和功能。但是需要注意,模拟器并不等于真机运行,因为模拟器cpu采用的是i386架构,但是iOS真机采用的是armv架构;并且模拟器不支持远程推送之类的功能。

模拟器上的操作总结:

Command + H:隐藏模拟器

Command + Q:推出模拟器

Command + S:截屏模拟器,存储到OS桌面

Command + L:锁屏

Command + ←:向左旋屏

Command + →:向右旋屏

Command + Shift + H:返回模拟器主界面,等于Home键

在iOS模拟器菜单栏,点击硬件->设备,可以切换模拟器设备

模拟器的iPhone SDK:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

上述路径,可以在Finder中Command+Shift+G搜索。

模拟器的沙盒路径:

这是在当前用户账户的隐藏目录下,路径为

/Users/[USERNAME]/Library/Application Support/iPhone Simulator/7.1/Applications

此处的7.1为当前模拟器iOS版本,在Applications目录下,可以看到不同文件夹,代表不同的App。然后就可以看到App的沙盒目录:Documents、Library、tmp三个文件夹。

编译错误分析:

编译错误种类太多,我只描述一下遇到的常见类型和重要错误。

常见错误,大多都是代码编写的问题,例如变量未实例化、对象引用计数为-1、向nil对象发送方法请求等。

比较重要的有:

  1. Reference、link相关:即引用相关错误,多半是链接库或者头文件引用找不到,或者重复引用的问题。需要检查头文件引用,或者头文件搜索路径的配置。
  2. 带有i386关键字的问题:多指编译目标架构不对应,i386架构只针对模拟器运行,但是真机编译,需要armv架构;或者是引用的静态链接库的编译架构有误。
  3. 某些api被废弃:一般出现在更新了新版SDK后,需要找到对应api,然后替换为最新方法
  4. 证书错误:这个返回到目标设置里去调整,或者需要去开发者中心重新配置生成
  5. 预编译头文件.pch被修改:这个问题不大,clean以后重新编译即可

Xcode开发和调试总结的更多相关文章

  1. 5个Xcode开发调试技巧

    转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro    1.Enable NSZombie Objects(开启僵尸对象) Enab ...

  2. iOS 5个Xcode开发调试技巧

    转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro    1.Enable NSZombie Objects(开启僵尸对象) Enab ...

  3. (转)5个Xcode开发调试技巧

    1.Enable NSZombie Objects(开启僵尸对象) Enable NSZombie Objects可能是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问 ...

  4. xcode 真机调试 failed to get the task for process xxx

    xcode 真机调试 failed to get the task for process xxx 此错误原因是,使用 in house profile 签名了真机调试的证书: 在 target--- ...

  5. Xcode真机调试初体验

    1. 开发者证书(Certificates) 分为开发(iOS Development)和发布(iOS Distribution)两种,无论是真机调试,还是上传到App Store都需要该证书,是一个 ...

  6. 【转】Xcode真机调试初体验

    1. 开发者证书(Certificates) 分为开发(iOS Development)和发布(iOS Distribution)两种,无论是真机调试,还是上传到App Store都需要该证书,是一个 ...

  7. ios xcode真机调试获取屏幕截屏

    非常多时候我们须要在调试的过程中把手机屏幕截图发给其它人看,在android开发中我们能够非常方便的截图保存.而xcode开发ios的时候发现这个需求却如此困难.网上大部分都是介绍的以下这个方案.可是 ...

  8. iOS开发的调试技巧

    关于本文: 1.模拟器的快捷键 2.覆盖安装注意事项 3.给模拟器相册增加照片 4.模拟器中程序的数据 5.安装旧版本的模拟器 6.模拟慢网速 7.异常断点与符号断点 1.模拟器的快捷键 常用的模拟器 ...

  9. tomcat开发远程调试端口以及利用eclipse进行远程调试

    一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里:  SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...

随机推荐

  1. 《python源代码分析》笔记 pythonVM一般表达式

    本文senlie原版的.转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.字节码指令 LOAD_CONST:从consts表中读取序号为i的元素并压入到执行时栈中 ...

  2. 词组缩写(isalpha()的应用)

    Problem Description 定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写.比如,C语言里常用的EOF就是end of file的缩写.   Input 输入的第一行是一个整数 ...

  3. Func和Action的用法区别

    平时我们如果要用到委托一般都是先声明一个委托类型,比如: private delegate string Say(); string说明适用于这个委托的方法的返回类型是string类型,委托名Say后 ...

  4. mysql_常用命令

    1: 以指定编码创建数据库 CREATE DATABASE `search_data` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

  5. JavaEE Tutorials (1) - 概述

    1.1 Java EE 7平台新增特性3 1.2 Java EE应用模型3 1.3 分布式多层应用4 1.3.1 安全4 1.3.2 Java EE组件5 1.3.3 Java EE客户端6 1.3. ...

  6. XCL-Charts圈图

    我不知道是不是叫图,无论如何,所以叫它. 图形是今天我Circliful这个jQuery 插件上看到的. 认为非常好看. 就想把它实现出来,由于之前画过环形图.且我如今的图表基类基本已成型,所以非常快 ...

  7. C# Parse和Convert的区别分析

    原文:C# Parse和Convert的区别分析 大家都知道在进行类型转换的时候有连个方法供我们使用就是Convert.to和*.Parse,但是疑问就是什么时候用C 什么时候用P 通俗的解释大家都知 ...

  8. Apache & WebDav 配置(二)

    (二)WebDav配置 & put脚本编辑! WebDav 配置 ---------------- # 1. 修改了两个配置文件 # 2. 创建web访问用户的用户名和口令 # 3. 创建了两 ...

  9. mono for android 学习记录

    C#开发Android应用实战(全 扫描 中文版) 学习记录: 拖完控件后,不要急着按F5,需要重新生成,才能自动修改 Resource.Designer.cs 文件 1. Activity 是基于a ...

  10. 真懂JavaScript吗

    你真懂JavaScript http://www.cnblogs.com/elegance/p/4195593.html 看了汤姆大叔的“你真懂JavaScript吗?”,里面有5道题目,我都一一作了 ...