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. 安德鲁斯 建立与各种听众自己定义的ScrollView

    === 建立与各种听众自己定义的ScrollView === 尽管安卓5.1已经release, 可是ScrollView的封装和对外API依然少的可怜, 尽管它优化得非常好了. 所以问题来了: Sc ...

  2. 它们的定义ListView,实现Item除去滑动和滑出菜单效果

    这个程序是基于变化从网上开源项目,详情货源忘记.懒得去搜索,.假设有不合适的地方.请与我联系作者.我会及时回复和处理! 序中主要包括两个ListView,一个是实现側滑删除.一个是側滑出菜单,代码中的 ...

  3. HDU1325 Is It A Tree? 【并查集】

    Is It A Tree? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  4. Samza/KafkaAnalysizing

    Apache Samza is a distributed stream processing framework. It uses Apache Kafka for messaging, and A ...

  5. java中IO写文件工具类

    以下是一些依据经常使用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 当中jodd中提供的JavaUtil类中提供的方法足 ...

  6. 使用Vs2005打造简单分页浏览器(1)原创

    原文:使用Vs2005打造简单分页浏览器(1)原创 使用Vs2005打造简单分页浏览器(1)原创1引言2功能3实现过程以及关键点4总结5不足之处6其他7 代码下载 1    引言很早就有搞一个浏览器的 ...

  7. bootstrap-wysiwyg 结合 base64 解码 .net bbs 图片操作类

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  8. Pku1218

    <span style="background-color: rgb(204, 204, 204);">/* A - THE DRUNK JAILER Time Lim ...

  9. 使用AndroidStudio快速开发教程

    关于AndroidStudio的使用 参考:http://www.codes51.com/article/detail_98914.html  1.对于开发环境的通性:编写 调试 视图   一般的开发 ...

  10. JS实现全选,用于界面批量操作向后台传值时使用

    function seltAll(){ var chckBoxSign = document.getElementById("ckb"); //ckb 全选/反选的选择框id va ...