xcode常见报错调试
转载来自于:http://www.cnblogs.com/g-ios/p/4625912.html(广_ios博客园)
BMKGeoCodeSearch 反向地理编码一直失败 Location
申请的key的安全码与代码中build id不一样,修改成一样就OK了
新建一个类,将百度地图的定位功能封装起来以后,定位的代理方法不走
定位是要一直持续的,而我们新建这个类,如果不设置成,staic静态变量,他就会自动销毁,对象销毁以后肯定不会定位了。
ios8系统 点击设置隐私定位功能直接崩溃的问题
这个问题出现的原因肯定不是ios8系统的问题,因为其他app都好的,为什么你的APP就有问题,肯定是你加代码的时候什么地方写错了。
我对照代码找了好几遍,终于发现有个地方和别人的不一样,那就是设置plist文件变量的时候Type类型BOOl应该是String。估计苹果是通过字符串对比来判断的,所以BOOl类型就直接崩溃了。
使用cateogry如果调用不了类目里的方法
需要在被扩展的类的.m文件中,导入你所扩展的类,在类目中不能声明变量
弹出不同步 同一时间下来上拉刷新两次,有时数据源数组会是空造成奔溃
数据源数组采用懒加载,另外记得给数组赋nil,最好这样做。
输入框与键盘的弹出不同步
这表明监听键盘错误,应该监听的是键盘将要显示的通知,而不是键盘显示出以后的通知
问题 -[UITableView _configureCellForDisplay:forIndexPath:]
解答 因为- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 这个函数的返回值中有nil
问题 Xcode 工程文件打不开,cannot be opened because the project file cannot be parsed. (代码更新时,可能有这种情况)
解答 这是因为.xcodeproj工程文件冲突了
冲突消息信息
<<<<<<< .mine 9ADAAC6A15DCEF6A0019ACA8 .... in Resources */, ======= 52FD7F3D15DCEAEF009E9322 ... in Resources */, >>>>>>> .r269
解决方法: 1.对.xcodeproj 文件右键,显示包内容
2.双击打开 project.pbxproj 文件
3.找到以上类似的冲突信息(可以用commad + f 搜索)
4.删除 <<<<<<<,======,>>>>>>这些行
5.保存,退出
6.重新打开.xcodeproj文件即可
问题 使用arc编写的文件,如何不用删release
解答 在build phases 的complies sources设置中将相应的文件设置为-fno-objc-arc
问题:libxml/tree.h file not found解决办法
解答:1. 导入libxml2.dylib 包
2.设置Header Search Paths 为 /usr/include/libxml2 如图:
问题:__dns_free_resource_r_dns_free环信SDK集成EaseMobSDK
"_dns_free_resource_record", referenced from: -[XMPPSRVResolver processRecord:length:] in libEaseMobClientSDKLite.a(XMPPSRVResolver.o)
这样的错误,是由于缺少库:
添加libresolv.dylib库,就可以了
使用上拉下拉刷新方法时,如果跳出该界面接记得释放上拉下拉刷新类(老版本的MJRefresh)
不能在viewdidload中跳转控制器
问题:AFNetworking请求中含中文时程序崩溃
AFHTTPRequestOperationManager * manager = [AFHTTPRequestOperationManager manager];[manager GET:urlString parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {//} failure:^(AFHTTPRequestOperation *operation, NSError *error) {//}];
出现error:
Assertion failure in -[AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:]
需要处理urlString的编码
urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
彻底解决_OBJC_CLASS_$_某文件名", referenced from:问题
http://www.cnblogs.com/g-ios/p/4625907.html
Receiver type 'TableViewCellFrame' for instance message is a forward declaration
这往往是引用的问题。ARC要求完整的前向引用,也就是说在MRC时代可能只需要在.h中申明@class就可以,但是在ARC中如果调用某个子类中未覆盖的父类中的方法的话,必须对父类.h引用,否则无法编译。
程序发布后,发现一个bug,需要在自己手机调试时,出现:a valid provisioning profile for this executable was not found错误.
原来是因为发布的时候把schema里的"Build Configuration"改成了release。而release对应的provision是用发布证书的。把"Build Configuration"改成了debug就好了。
because the App Transport Security policy requires the use of a secure connection
今天升级Xcode 7.0 bata发现网络访问失败。
输出错误信息
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
Google后查证,iOS9引入了新特性App Transport Security (ATS)。详情:App Transport Security (ATS)
新特性要求App内访问的网络必须使用HTTPS协议。
但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。
最终找到以下解决办法:
在Info.plist中添加NSAppTransportSecurity类型Dictionary。
在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
参考:
App Transport Security support aka apps on iOS 9 don't work #4560
711_networking_with_nsurlsession.pdf
总结:
苹果正在加大应用安全的管控,这个举措可以看出苹果对信息安全的重视,也暴露出大部分应用传输数据时都是未经过加密的,或使用私有方式加密,以至于苹果开始对开发者提出要求。
私有加密虽然一定程度上是安全的,但是终究不是一个长久之计。全世界这么多安全专家在维护HTTPS安全,早日使用HTTPS确保信息安全才是王道!也省去了私有加密协议的安全隐患!
当更新xcode后,再次打开svn他将提示xcode/develop不存在,并且让你用xcode-select切换成你当前使用的xcode。
如下: sudo xcode-select -switch /Applications/Xcode-beta.app/
这里的路径是最容易出错的,我当时就被他弄迷了 搞了好长时间 记录这个是硬盘下的application并不是用户里的application,还有就是文件名,尽量让他自己提示出来,避免出错
error: Couldn't materialize: couldn't get the value of variable result: variable not available
Errored out in Execute, couldn't PrepareToExecuteJITExpression 这种报错更直观的表现是,一句代码一执行,所创建的对象将会立马变成空,但不影响使用
coredata Can't merge models with two different entities named ‘MessageModel'
这种错误是因为工程内部自动生成了一个.xcdatamodeld文件,解决办法就是 将该文件删除,clean,然后将软件从测试机或真机中删除,再运行
uitableView 不走datasource方法
代理没挂 行数或者段数设置为0 uitableview的frame为0
问题原因:
之前在keychain(钥匙窜访问)中多删了一个证书:Apple Woldwide Developer Relations Certification Authority,它是iPhone Developer证书的签发者,如果它被删除就会导致iPhone Developer证书被识别为未知颁发机构签名,然后xcode中真机调试就会出现上面的错误。
解决办法:
重新把AppleWWDRCA放回去;从Apple官网(http://www.apple.com/certificateauthority/)下载一个,下载后拖入keychain(钥匙窜访问)-登录目录。
如果想重新生成证书,Apple是允许的,只要不修改App Id就Ok。
Code Sign error: No code signing identities found: No valid signing identities (i.e. certificate and private key pair) matching the team ID “E9823ESPAM” were found.
证书出现这种问题时第一反应不要认为是证书除了问题,要查看target里的CDL与CDLtest里面是否设置了一样的配置文件。
A valid provisioning profile for this executable was not found. 真机调试
自从XCode支持自动维护证书之后,省去了我们手动添加设备再更新完证书之后下载的麻烦,但一直都没有搞明白自动维护的机制,导致经常出现XCode报错却不自动添加设备,同时由于证书是XCode创建的,又无法手动修改的问题。经过一段时间的测试,终于找到了解决办法,在这里分享给大家。
正常的情况应该是:
no provisioning profile was found for this executable
然后可以选择Fix Issue,这样XCode就会自动为我们将新的设备添加到证书里,再自动更新证书。可能遇到的错误如下:
A valid provisioning profile for this executable was not found
解决方法是
1. 在Target的General界面中将Team改为所对应的开发者账号团队
2. 在Target的Build Settings中的Code Signing Identity都改为iOS Developer(这里不能选择自己的),Provisioning Profile改为Automatic
3. 此时Clean之后再运行,就可以出现Fix Issue的对话框,选择Fix Issue即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?