博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发debug集锦
阅读量:5983 次
发布时间:2019-06-20

本文共 2689 字,大约阅读时间需要 8 分钟。

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_64clang: 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”

解决办法:导入所引起问题的框架。

......

转载地址:http://togox.baihongyu.com/

你可能感兴趣的文章
Django Admin
查看>>
Android 70道面试题汇总不再愁面试
查看>>
从ArrayList说起的JAVA复制与参数传递机制
查看>>
Servlet
查看>>
比较好的网站及工具
查看>>
Keychain
查看>>
Webview图片自适应
查看>>
使用 getopt() 进行命令行处理
查看>>
js去掉html标记,中正则表达式,去掉字符,截取字符
查看>>
使用Akka Http,ActiveMQ搭建一个邮件发送服务器
查看>>
kvm starting domain: cannot send monitor command
查看>>
Tomcat主配置文件Server.xml详解
查看>>
中考在即,您为孩子选择什么?--读<<招生全攻略>>有感
查看>>
深入剖析 HTML5
查看>>
Mysql mysql.server启动脚本详解 .
查看>>
网格(GridView)+图片(ImageView)+文字(TextView)
查看>>
jquery遇上Ajax
查看>>
iptables
查看>>
我的友情链接
查看>>
RHEL-6.1/5.4安装Heartbeat-3-0-7有可能碰见的各种错误及解决方法
查看>>