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. sql server中的索引详情

    什么是索引 拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQL Server中的数据记录也是按页存放的,每页容量一般为4K .为了加快查找的速度,汉语字(词)典一般都有按拼音. ...

  2. MIFARE系列6《射频卡与读写器的通信》

    1. ATR(Answer to request) 读写器呼叫磁场内的卡片.卡片对呼叫做出应答. 对刚进入磁场得到电复位处于休闲状态的卡片,卡请求(REQA,0x26):对于已进行过读写操作并进入休眠 ...

  3. css布局之选择切换按钮

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. MD5处理图片加密算法

    Android MD5加密算与J2SE平台一模一样,由于Android 平台支持 java.security.MessageDigest这个包.实际上与J2SE平台一模一样. 首先: 输入一个Stri ...

  5. 第一个JavaWeb程序

    转载 第一个JavaWeb程序 JavaWeb学习总结第二篇—第一个JavaWeb程序 最近我在学院工作室学习并加入到研究生的项目中,在学长学姐的带领下,进入项目实践中,为该项目实现一个框架(用已有框 ...

  6. 【百度地图API】如何获取行政区域的边界?

    原文:[百度地图API]如何获取行政区域的边界? 摘要:以前教过大家如何自行获取行政区域,或者自定义获取一个区域的边界值.今天来教大家直接调用百度地图API1.3(目前最新版本)来获取行政区域的边界值 ...

  7. 【百度地图API】如何制作商圈地图?行政地图?

    原文:[百度地图API]如何制作商圈地图?行政地图? 摘要: 想要显示某一个区域,并且鼠标放上去,该区域就会变色.这时,你就需要巧用多边形覆盖物,和它的鼠标事件了! 快来看看去哪儿网的实例吧:http ...

  8. asp.net webForm 前后台类关系

    要研究这个,首先要新建网站, protected void Page_Load(object sender, EventArgs e) { string str = System.Reflection ...

  9. 批量执行SQL文件

    原文:批量执行SQL文件 摘要:很多时候我们在做系统升级时需要将大量的.sql文件挨个执行,十分不方便.而且考虑到执行顺序和客服的操作方便性,能不能找到一种简单的方法来批量执行这些sql文件呢? 主要 ...

  10. IntelliJ IDEA —— Android开发的另一个选择

    IntelliJ IDEA —— Android开发的另一个选择 很早就听过Eclipse的大名,但在我初学Java的时候,一位前辈推荐的IDE却是IntelliJ IDEA.因为之前用过JetBra ...