iOS开发debug集锦
1.添加第三方库时,需要注意使用环境
duplicate symbol _llvm.embedded.module in:
/Users/dengw/360Cloud/xcode_code/application/OnceNote/Pods/ShareSDK3/libraries/extends/WeChatSDK/libWeChatSDK.a(MTAEvent.o)
/Users/dengw/360Cloud/xcode_code/application/OnceNote/Pods/ShareSDK3/libraries/extends/WeChatSDK/libWeChatSDK.a(MTATestSpeed.o)
ld: 24 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
原因:使用的这个第三方SDK的静态库,就是.a后缀的文件,不支持模拟器指令集,因为模拟器是电脑的CPU, x86_64构架。
解决方案:build或run时,选择“iOS Device”,使用真机调试。或者,添加模拟器使用库。
2.自定义日志输出
//自定义日志输出
#ifdef DEBUG
//调试状态
#define XLog(...) NSLog(@"%s line:%d\n %@ \n\n", __func__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])
#else
//发布状态
#define XLog(...)
#endif
通过NSLog()可以使用%@格式说明符来输出对象。NSLog()处理%@说明符时,它会询问参数列表中相应的对象以得到这个对象的描述。从技术上讲,就是NSLog()给这个对象发送描述消息,然后对象的description方法生成一个NSString并返回。之后NSLog()在其输出中包含这个字符串。在类中添加description方法就可以自定义NSLog()如何输出对象。
3.cocoapods使用问题
使用pod install命令时,卡在Updating local specs repositories不动。
解决办法:“pod install” 换成“pod install --verbose --no-repo-update”命令,前面的命令被墙了。
4.The operation couldn’t be completed. (LaunchServicesError error 0.)
解决办法:退出Xcode,退出Simulator,一定要完全退出。
5.包含的文件找不到
1)libxml/parser.h file not found
解决方法:在Xcode菜单 Project->Project Settings的All标签,搜索 Header Search Path ,添加/usr/include/libxml2 即可。
6.设置UISearchBar取消按钮
UISearchBar *searchBar = [[UISearchBar alloc] init];
//显示取消按钮
[searchBar setShowsCancelButton:YES animated:YES];
//设置取消按钮的文字(默认是cancel)
for (UIView *view in [[searchBar.subviews lastObject] subviews]) {
if ([view isKindOfClass:[UIButton class]]) {
UIButton *cancelBtn = (UIButton *)view;
[cancelBtn setTitle:@"取消" forState:UIControlStateNormal];
}
}
7.真机调试team ID not found问题
问题:No valid signing identities (i.e. certificate and private key pair) matching the team ID “***********” were found.
注:通常这种情况出现在下载并打开别人项目时
解决方案:
1)、将Build Setting里面的Code Signing更改为自己的证书;
2)、尝试修改target -> General -> Identity -> Team,将其值修改为None(通常不能被修改);
3)、若2不成功,则针对项目的target复制多一份副本,
选择Duplicate;
4)、将复制后的target的Team设置为None;
5)、选择当前运行target为复制并更改后的副本,Run;
至此,该问题已经解决。
8.Xcode编译C++
将.cpp改成.mm
9.添加类名前缀
Build Setting页,右侧Project Document-->Class Prefix项
10.Xcode中无法从Button到View Controller拖线
原因:xib 或者 storyboard中的那个viewController 跟你要链接的那个Controller没对应上。
解决方案:在xib 或者 storyboard里,在class里写一下那个类名即可。
11.使用官方私有API的方式
法1.只导头文件进去工程。
法2.拷贝私有框架进工程,再导入头文件。
法3.使用extern方式添加声明。
实例:
@interface NSObject ()
- (NSString *)originalString;
- (void)removeLineFromNewTextLineInfoRange;
- (id)productName;
+ (BOOL)canConvertToObjC2:(id)arg1;
- (BOOL)taskStopRunning;
@end
12.Xcode build failure “Undefined symbols for architecture x86_64”
解决办法:导入所引起问题的框架。
......
【扫描关注更多干货】
公众号:xiaoniu
iOS开发debug集锦的更多相关文章
- iOS 开发问题集锦(三)
iOS 开发问题集锦(三) 介于群里大部分童鞋都是新手,为了大家能够更好的提问,并且提的问题能更好的得到回答,下面写几点提问时的注意事项: 1.认真对待你的问题,在提问题前有过认真的思考: 2.先在 ...
- 新手必看,史上最全的iOS开发教程集锦,没有之一!
最近大火的iPhone XS Max和iPhone XS,不知道有没有同学已经下手了呢?一万三的价位确实让很多人望而却步啊.据说为了赢得中国的用户,专门出了双卡双待的,可想而知中国市场这块“肥肉”人人 ...
- iOS 开发问题集锦(一)
最近在QQ群里好多人问一些比较基础的问题,在这罗列一下: 1.键盘上的斜杠键坏掉了,怎么样用快捷键进行注释呢? 首先在Xcode中注释的默认快捷键为:command+/: 其次可以自行修改快捷键:Xc ...
- iOS开发debug跟release版本屏蔽NSLog方法
1.在***-Prefix.pch里面添加 #ifndef __OPTIMIZE__ # define NSLog(...) NSLog(__VA_ARGS__) #else # define NSL ...
- 【ios开发】ios开发问题集锦
1. ARC forbids explicit message send of'release' 'release' is unavailable: not available inautomatic ...
- iOS 开发问题集锦(二)
办公机器原来是别人在用,Xcode也是用别人的账号下载的.昨天想升级Xcode的时候,发现没有密码,为了不打扰别人,也为了方便自己之后升级,于是乎把旧版本直接卸载掉,重新下载了全新的4.6版. 下载完 ...
- 转 iOS开发debug跟release版本log屏蔽方法
简单介绍以下几个宏: ) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持).宏前面加上##的作用在于,当可变参数 ...
- iOS开发debug跟release版本NSLog屏蔽方法
简单介绍以下几个宏: 1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持).宏前面加上##的作用在于,当可变参 ...
- XE7 & IOS开发之开发账号(3):证书、AppID、设备、授权profile的申请使用,附Debug真机调试、Ad hoc下iPA文件生成演示(XCode5或以上版本推荐,有图有真相)
网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 注意,以下讨论都是以&q ...
随机推荐
- 如果想要跨平台,在file类下有separtor(),返回锁出平台的文件分隔符
对于命令:File f2=new file(“d:\\abc\\789\\1.txt”) 这个命令不具备跨平台性,因为不同的OS的文件系统很不相同. 如果想要跨平台,在file类下有separtor( ...
- 显示图片中CDC和HDC问题
(m_Pic.LoadPictureData(pBuffer, nSize));//接作调用函数读pBuffer的jpg数据准备显示 showimage();//显示图片 void Caccess_t ...
- Eclipse & Visual Studio
VS中的解决方案 vs Eclipse中的workspace Maven包管理 vs Nuget类库管理 build path vs
- Spring_day04--SSH框架整合过程
SSH框架整合过程 第一步 导入jar包 第二步 搭建struts2环境 (1)创建action,创建struts.xml配置文件,配置action (2)配置struts2的过滤器 第三步 搭建hi ...
- ios开发之 -- 强制横屏
在写项目的时候,会遇到很多稀奇古怪的需求,我就碰到一个写一个网站,需要强制横屏,然后不需要上架,网上看了很多大神的需求,基本都能实现,但是不太好用, 自己参考搞了一个,代码如下: AppDelegat ...
- Hadoop1.2.1 单机模式安装
首先安装JDK: 然后安装hadoop: 最后的实例测试:首先在 /opt/data 目录下创建 input目录, 然后把hadoop的conf目录下的所有xml文件拷贝到上面的input目录, 然后 ...
- PostgreSQL的.NET驱动程序Npgsql中参数对象的一个Bug
最近将公司的项目从SqlServer移植到PostgreSQL数据库上来,在调用数据库的存储过程(自定义函数)的时候,发现一个奇怪的问题,老是报函数无法找到. 先看一个PgSQL存储过程: CREAT ...
- 关于Win7 x64下过TP保护(应用层)(转)
非常感谢大家那么支持我上一篇教程.Win10 快出了,所以我打算尽快把应用层的部分说完. 调试对象:DXF调试工具:CE.OD.PCHunter.Windbg调试先言:TP的应用层保护做得比较多,包括 ...
- 【BZOJ5073】[Lydsy十月月赛]小A的咒语 DP(错解)
[BZOJ5073][Lydsy十月月赛]小A的咒语 题解:沙茶DP,完全不用后缀数组. 用f[i][j]表示用了A的前i个字符,用了j段,最远能匹配到哪.因为显然我们能匹配到的地方越远越好,所以我们 ...
- LAMP集群项目二 初始化系统
1.关闭防火墙 /etc/init.d/iptables stop chkconfig iptables off 2.关闭selinux cat /etc/selinux/config #查看状态 s ...