xcode调试Word文档下载推荐.docx
- 文档编号:18849668
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:12
- 大小:28.70KB
xcode调试Word文档下载推荐.docx
《xcode调试Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《xcode调试Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
在次单击就disable该断点;
如果要删除该断点就将该断点拖出边列。
调试快捷键:
1.continue
:
option
+
command
P
2.step
Into
shift
I
3.step
Over
:
O
4.step
Out
T
1.编译iPad真机时,选择了Architetures:
Standard(armv6)BaseSDK:
iPhoneDevice3.2TargetDeviceFamily:
iPad.
若编译出现如下错误:
Command/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2failedwithexitcode1
则修改GCC4.2CodeGeneral区域中的ComplieForThumb为非选中.
已经有了开发者证书及私钥后,可直接在越狱的手机上调试.
2.编译链接时,"
_OBJC_CLASS_$_xxx"
referencedfrom:
可能需要重新建立某个类的文件.
或者:
选择项目名,在detail列表中的target列(显示为一个又圆圈),把这个文件的复选选中,或者再次选中.以把它加入到这个target里面来.
3.在sdk4.0及以上使用RegexKitLite报'
captureCount'
wasnotdeclaredinthisscope错误,是在非.m文件中使用了它的原因.
4.thereisnosdkwiththenameorpath.
从网上down的开源代码,结果运行的时候常出现这样的错,并且在deployment中没有ios deployment target 选项.
尝试Project/EditActiveTarget/及SetActiveSDK菜单项,来回切换一下ActiveConfiguration。
5.常见的EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION错误,一般是因为访问已经被release的对象造成的。
在工程中加入NSZombieEnabled环境变量,并设为启用,则在EXC_BAD_ACCESS发生时,XCode的Console会打印出问题描述中,设置方法:
双击Executables下的可执行模组,在弹出窗口中,Variablestobesetintheenvironment,添加NSZombieEnabled,并设定为YES,点击选中复选框启用此变量。
可以再加入MallocStackLogging来启用malloc记录,以获得更多的提示来帮助定位问题。
在gdb窗口输入(格式:
shell
malloc_history<
id>
<
address>
)
malloc_history
14360x5f7fcf0,
也可以在终端中去运行就要去掉以上的shell指令如malloc_history<
应该仅当需要调试内存时,才设置上述环境变量.
在xcode4中,Toeditenvironmentvariables,gotoMenuProduct/EditScheme…,selectthedesiredconfiguration(youprobablywant'
Run'
)fromtheleftsidebarfirstandthenclickontheArgumentstab.Environmentvariablesareconfigurablethere.
6.运行一个IPhone程序时,弹出窗口说“程序运行失败,预置描述文件已过期”。
解决办法是,在Xcode中,window->
Orgnazier->
你的iphone->
删除带有红*的该程序之前的Profile。
然后从Xcode运行该程序.
7.
真机编译时报CodeSignerror:
Theidentitydoesn'
tmatchanyvalidcertificate/privatekeypairinthedefaultkeychain
修改工程和Targets的getinfo\build中的codesigningidentity为空
8.调试打印
CFShow(coreFoundationThingy)willprintoutadescriptionofcoreFoundationThingytotheconsole.Outputlookssomethinglike:
{value=w:
1186.000000h:
687.000000type=kAXValueCGSizeType}
IfNSLog()isprintingsomethingoutasanNSCFType,tryCFShow().
9.编译时报Command/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clangfailedwithexitcode1,修改_C/C++CompilerVersion为gcc4.2
10.thisclassisnotkeyvaluecoding-compliantforthekeyviewController
可能在创建了一个基于view的工程,而后把生成的viewcontroller删除了,但是在.xib中还有对它的引用,在IB中直接用delete键删除掉它就行了。
11.这台电脑上已经存在一个名为“embedded.mobileprovision”的预置文件,您是否要替换么?
12.真机调试时报failedtoupload*.app
http:
//www.shouyanwang.org/thread-462-1-1.html
13.记的release时,先置delegate为nil。
14.模拟器
将xcode升级到4.3.1以后发现,ipad的模拟器,没有Home键了。
Command+Shift+H就可以实现类似点击Home键的效果了。
Howto“addexistingframeworks”inXcode4?
1.Intheprojectnavigator,selectyourproject
2.Selectyourtarget
3.Selectthe'
BuildPhases'
tab
4.Open'
LinkBinariesWithLibraries'
expander
5.Clickthe'
+'
button
6.Selectyourframework
7.(optional)Draganddroptheaddedframeworktothe'
Frameworks'
group
15.如何在Xcode4.2下进行iPodtouch2代、iPhone3G等设备的真机调试?
16.编译真机提示provising文件找不到,到project.pbxproj中,把那串标识值删除。
17.在xcode4.3上连接装有ios4.2的3gs,提示:
Xcodehasencounteredanunexpectederror(0xC002)
Nosuchfileordirectory,at‘/SourceCache/DTDeviceKit/DTDeviceKit-1196/DTDeviceKit/DTDeviceKit_Utilities.m:
798’
cd~/Library/Developer/Xcode/iOS\DeviceSupport/4.2.1\\(8C148a\)/Symbols/System/Library/Caches/com.apple.dyld/
touch.copied_dyld_shared_cache_armv6
touch.processed_dyld_shared_cache_armv6
touchdyld_shared_cache_armv6
或
touch.copied_dyld_shared_cache_armv7
touch.processed_dyld_shared_cache_armv7
touchdyld_shared_cache_armv7
18.xcode4添加调试断点
在Xcode左侧断点管理窗口(Command+6)中,点击左下角+,添加addsymbolicbreakpoint,输入objc_exception_throw,点击done;
然后右键单击该断点选择movebreakpointto,选择项目名或User,即可以在所有项目中起作用。
还可添加输入malloc_error_break的symbolic断点,以跟踪调试释放了2次的对象。
19.XCode内置GDB,调试时在输出窗口中使用GDB命令来调试程序。
po命令:
为printobject的缩写,显示对象的文本描述(显示从对象的description消息获得的字符串信息)。
print命令:
有点类似于格式化输出,可以输出对象的不同信息:
info命令:
我们可以查看内存地址所在信息
show命令:
显示GDB相关的信息。
如:
showversion显示GDB版本信息
help命令:
如果忘记某条命令的语法了,可以使用help命令名来获取帮助信息。
helpinfo显示info命令的用法。
20.NSLog
真机上NSLog会消耗资源,
以release模式编译的程序不会用NSLog输出,而以debug模式编译的程序将执行NSLog的全部功能。
#ifndef__OPTIMIZE__
#defineNSLog(...)NSLog(__VA_ARGS__)
#else
#defineNSLog(...)
#endif
或
#ifdef__OPTIMIZE__
#defineNSLog(...)
这个代码的魔术在于:
release模式通常会定义__OPTIMIZE__,debug模式不会。
将这段代码放在头文件当中,就可以放心的使用NSLog了!
把这些代码放到*Prefix.pch中最省事。
可以把这段宏定义放到一个头文件中,再把这个头文件包含到*Prefix.pch中。
iOS中日志打印:
自定义NSLog
#defineNSLogNSLog(@"
#%s##%d#"
strrchr(__FILE__,'
/'
),__LINE__);
NSLog,例如NSLog(@"
beginmainfunction"
);
打印出来如下#/main.mm##30#beginmainfunction
参考
21.错误日志目录在MacOSX:
~/Library/Logs/CrashReporter/MobileDevice/<
DEVICE_NAME>
iOS
Exception
caught Crash
Report,3种方法
在iPhone上捕获软件异常退出的信息,2种方法
PLCrashReporter
22.Certificateidentity'
iPhoneDeveloper:
XXXXXXXX'
appearsmorethanonceinthekeychain.Thecodesigntoolrequiresthereonlybeone
出错原因:
多次为同一个计算机生成私有证书,并且每次都生成了proversionning文件,下载并按照到同一个iOS设备上,那么再次编译程序到设备上的时候就会出现这个问题。
修改方法:
在Xcode中,选择菜单Window->
Organizer,在LIBRARY下面,选择ProvisioningProfiles.找到前面几次生成的Provisioningprofiles.删除。
在系统的keychains,即钥匙串管理程序中,在登录下面,我的证书,删除早期的私有证书。
再次编译
23.在iOS设备上测试你的应用
如果你已加入iOS开发者计划,你现在就可以使用Xcode进行真机运行、测试和调试了,直接在xcode4中操作。
当你将一台安装了有效描述文件的设备,连接到Mac上时,这台设备的名称以及当前系统版本会出现在EditScheme的Destination菜单中。
24.error:
failedtolaunch'
/Users/gzty1/Library/Developer/Xcode/DerivedData/TianyaQing-chiobhpmbvwnqudfqnfawdzjrtey/Build/Products/Debug-iphoneos/TianyaQing.app/TianyaQing'
--failedtosendtheqLaunchSuccesspacket
重新从appstore上下载安装此软件,再删除,然后尝试真机调试
Xcode是苹果公司的集成式开发环境(IDE),可以同时用来开发iOS和MacOSX应用程序。
当你在Mac电脑上安装Xcode之后,同时也会安装iOSSDK,其中包含了iOS平台开发所需的接口等。
在线安装下载地址
下载地址登录进入,就可以看到下载列表
1.编译项目时常报如
Undefinedsymbols:
"
.objc_class_name_PlacardView"
literal-pointer@__OBJC@__cls_refs@PlacardViewinMoveMe2View.o
ld:
symbol(s)notfound
collect2:
ldreturned1exitstatus
这样的错误.
解决方法参考下文:
Thathashappenedtomealotoftimes.Thaterroriscausedwhenthecompilercan'
tfindaclassorfunction.Besidestheobviousreasonsforthattohappen,youshouldalsodosomethinglikethis:
OntheleftoftheXcodewindowgotothetargets,andfindyourapplication.Openit.Youshouldseeabuildphasenamed"
CompileSources"
.Makesurethatyourimplementationfileisincludedinsidethatbuildphase.Ifnot,draganddropitontothatbuildphase.
Also,makesurethatyouhaveallframeworksincludedandlinkedtoyourapplication!
Tomakethatsure,gointoyourapplicationtargetagain,andseethe"
LinkBinaryWithLibraries"
buildphase.Seeifallnecessary.frameworkfilesareinthere.Ifnot,addthemusingdraganddrop.
在项目的Groups&
Files窗口中,打开Targets/项目名/CompileSources/把提示找不到的源文件拖到这里.重新编译.
2.接上手机(版本4.2.18c148a),在Organizer中,报TheversionofiOS
...
doesnotmatchanyoftheversionsofiOSsupported...,重启手机,xcode都不能解决。
最后,重装xcode_3.2.5_and_ios_sdk_4.2_final.dmg。
3.设置字体大小:
1)打开Preferences,快捷键是“Command+,”(注意,是三个键,按住command键,然后再快速地按“+”和“,”两个键即可)
2)选择“Fonts&
Colors”,选中所有的“Category”,然后双击“Font”一列,在弹出的对话框中选择适合自己的字体大小即可。
4.重构
包括重构变量名,方法名,和类名。
选择变量名,点击_Edit\Refactor\Rename...,要在输入框内输入新名字后,点Preview,然后Preview变成Apply,点击Apply。
5.快照
一般在开始重构之前要备份,选择File-MakeSnapshot,Xcode会记住项目当前的状态。
如果发现代码被改得面目全非,选择File-Snapshot,回到做快照的那一刻。
如果发现提示:
SnapshotFailed:
Aprojectsnapshotcannotbecreated.可能是一个磁盘镜像文件被损坏了,它用来存储快照,可以到~/Library/ApplicationSupport/Developer/Shared/SnapshotRepository.sparseimage把镜像文件删掉,然后重启xcode。
如果发现修改了某些代码之后出了问题,利用Xcode快照(snapshot)功能就可以轻松恢复工程到之前的状态,甚至已删除的工程也可以。
快照会保存当前工程的所有状态到磁盘上,以备之后进行恢复。
Xcode的工程管理器中列出了所有可用的快照。
可以随时手动创建快照,也可以让Xcode根据场合自动创建快照,例如每次构建之前或通过查找并替换修改代码之前等。
File>
CreateSnapshot,输入此快照的名称和描述,点按CreateSnapshot。
此快照就会出现在工程管理器中了。
要恢复到此快照,请点选File>
RestoreSnapshot。
6.help\search
用来查找在菜单中的功能,命令等。
7.在svn上增加目录时,用import.
8.修改某个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- xcode 调试