iOS开发日志

2018年10月26日

error: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."
iPod没有连接上wifi

2018年07月16日
iOS开发日志_第1张图片
多语言少了一个分号报错

在配置多语言的时候,一直提示.strings文件有问题,看了半天才发现少了一个分号。

2018年07月04日
iOS开发日志_第2张图片
文件找不到

报这个错误的原因是在使用cornerstone去delete文件之后,project中被删除的文件会变红,此时编译项目就是报这个错误。只需要手动delete project中的红色文件就可以了。

2018年06月01日

dyld: Library not loaded: /System/Library/Frameworks/UserNotifications.framework/UserNotifications Referenced from: /var/containers/Bundle/Application/229D102D-0399-4298-BE02-7373F33F8508/WeCan.app/WeCan Reason: image not found

iOS开发日志_第3张图片
库问题
2018年04月18日

[iOS]Error Domain=NSURLErrorDomain Code=-1002 "unsupported URL"

服务器地址少了http://

2018年03月07日

运行项目报错 error: Invalid bitcode signature

iOS开发日志_第4张图片
报错内容

在这篇文章中找到了解法,将Build Active Architecture Only中的Debug由NO改为YES,就可以了。

iOS开发日志_第5张图片
屏幕快照 2018-03-07 上午11.41.11.png

2018年03月07日

有多个系统版本模拟器导致的报错

iOS开发日志_第6张图片
报错内容

xcode9.2运行的,其他同事都没有问题只有我这台会报这个错误。仔细回想了下,貌似因为要解决iOS8.2系统崩溃的问题,所以就下载了一个8.2的模拟器。其他情况和同事一样。用Xcode9.0打开项目编译就通过了。

2018年03月06日

开发悬浮球组件遇到的问题,意思是缺少一个rootViewController

iOS开发日志_第7张图片
崩溃内容

步骤是我创建了一个window用来放置悬浮球,借鉴之前开发webRTC的经验,创建一个window,系统会自动将其加载到界面上。

iOS开发日志_第8张图片
问题代码

搜索了一些网上的做法,他们讲述的都是在实例化appdelegate的window没有指定rootViewController出的问题。和我的原理类似,把注释行打开,这样创建一个控制器给悬浮window就解决了。

2018年01月05日
iOS开发日志_第9张图片
编译项目xib报错

看左边问题的描述应该是xib文件创建的版本太低了,现在用Xcode9打开项目都无法编译此xib文件。

iOS开发日志_第10张图片
解决办法
2017年12月09日09:22:48

Failed to bind EAGLDrawable: to GL_RENDERBUFFER 1
Failed to make complete framebuffer object 8cd6

webRTC开发群视频连接起来之后,Xcode控制台一直输出这个内容。在仔细审查了代码之后发现没有什么问题,唯一的区别之前peerConnection连接起来的时候开启了视频流,现在在建立peerConnection之后会把localStream中的videoTrack设置为isEnable=NO。这样在- (void)peerConnection:(RTCPeerConnection *)peerConnection didAddStream:(RTCMediaStream *)stream回调方法中用[remoteVideoTrack addRenderer:remoteVideoView];remoteVideoVidew应该是没有内容的,所以导致了这个问题。注释掉这句话之后,程序就能够正常的运行了。之前也遇到过两次这个问题,但是当时都有别的开发任务,等到解决别的开发任务之后,这个问题又消失了,这次终于被解决了,好开森!

2017年11月16日16:00:52

xmpp消息的格式最开始为normal,但是接入了webRTC之后,会针对webRTC的消息新建一个类型chatType。这样哪些没有webRTC功能的软件版本是无法识别这些消息的。

2017年10月26日16:49:56

zhouzewen:TestPrivatePod civet$ pod lib lint --no-clean
-> TestPrivatePod (0.1.2)
- ERROR | [iOS] unknown: Encountered an unknown error (757: unexpected token at '2017-10-26 16:34:55.977 simctl[31232:1227799] CoreSimulator detected Xcode.app relocation or CoreSimulatorService version change. Framework path (/Applications/Xcode8.3.3.app/Contents/Developer/Library/PrivateFrameworks/CoreSimulator.framework) and version (375.21) does not match existing job path (/Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/A/XPCServices/com.apple.CoreSimulator.CoreSimulatorService.xpc) and version (494.13.6). Attempting to remove the stale service in order to add the expected version.
') during validation.
Pods workspace available at /var/folders/j4/tn0n31j13zg_mjwn2833ltkh0000gn/T/CocoaPods/Lint/App.xcworkspace for inspection.

使用终端上传.podspec文件的时候报错。
之前使用另一台只装了Xcode9的电脑上传过该.podspec文件,换自己的电脑上传的时候报错。因为自己的电脑装了Xcode7.3.3、Xcode8.3.3、Xcode9.0三个版本,打开Xcode9去Xcode->Preference->Locations->Command Line Tools 查看发现用的是Xcode8.3.3和上面的提示相同,更改为Xcode9.0并重启Xcode之后,在次使用上面的命令验证就通过了。

2017年02月17日
更新svn后报错
9 duplicate symbols for architecture x86_64 Linker command failed with exit code

iOS开发日志_第11张图片
4.png

参考资料
http://blog.csdn.net/crazyzhang1990/article/details/49586049
2017年02月09日
报错Assigning to 'id' from incompatible type 'XXXViewController * const __strong'
XXXViewController控制器没有遵守协议

2017年01月18日
问题 sign控制器的键盘录音不成功。
原因是使用 NSFileManager 的方法 返回的result 为NO
BOOL result = [[NSFileManager defaultManager] copyItemAtPath:voicePath toPath:voiceFile error:nil] ;
voicePath :/Users/mac/Library/Developer/CoreSimulator/Devices/Application/129E469E-69B6-4146-BFCF-DC7F3F178FD7/Documents/test839/chat/name1.aac
voiceFile : /Users/mac/Library/Developer/CoreSimulator/Devices/Application/129E469E-69B6-4146-BFCF-DC7F3F178FD7/Documents/test839/temp/name2.aac
在经过反复调试之后发现,voiceFile,temp文件夹是不存在的。所以copy方法会一直不成功,导致该路径下一直没有语音文件,其他需要用到该文件的控制器没有数据。
但是上面的问题在模拟器上是没有的,模拟器的登录个人账号是存在temp路径的。但在真机上却没有temp目录,最后只能把voiceFile的路径也改到chat/name2.aac,这样就解决了这个问题。

但是在修改的过程中还发现了另外一个隐藏的问题,或者说是疑惑。
录音需要用到的控制器是AVAudioRecorder,一直按着界面上的button 直到手抬起,表示语言录制完毕并发送语言。但是代码中button的touchUp事件,干了两件事情,第一停止录音,这是没有问题的。第二 调用sign控制器的代理方法处理录音文件。模拟器和真机上测试这么干都没有问题。
但是真的没有问题吗?录音文件的生成难道不需要时间?
touchUp的时候录音文件应该是没有生成的,但是在调用sign的代理方法时候,保存语音文件的目录下读取确是有该文件的。当然如果处理器速度很快,生成语音文件是时间小于sign代理方法调用这个方法的时间的话这么写是没有问题的。
这里还有另外一种情况,就是语音文件一早就创建好了,当你按下按钮的时候就开始往该文件中写入内容,touchUP的时候停止写入内容,所以如果这是判断语音文件是否存在是没有问题的。
经测试是第二种情况,touchDown的时候文件就建好了,然后开始写入数据,touchUp的时候停止写入数据。

查看了下AVAudioRecorderDelegate,发现有下面这个方法。

  • (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag;
    表示完成录音之后,这样可以防止语音文件被其他的操作造成问题,比如写入。应该讲sign的代理方法写到这个代理方法中。

2017年06月15日09:39:45
[Xcode8出现AQDefaultDevice (173): skipping input stream 0 0 0x0]
播放语音文件log中一直上面的提示,project没有crash,网上搜索了下按照步骤配置之后解决问题。
参考资料
http://blog.csdn.net/babeishi23/article/details/54694180

2017年06月15日14:08:59
__nwlog_err_simulate_crash simulate crash already simulated "nw_socket_set_common_sockopts setsockopt SO_NOAPNFALLBK failed: [42] Protocol not available"
使用Xcode8打开项目,log不停的提示。解决办法和上面的一样,
project-> Edit Scheme->Arguments ->Environment Variables
添加 name: OS_ACTIVITY_MODE Value: disable

2017年06月15日14:16:46
安卓发送到iOS的音频文件,播放的时候没有声音。
原因是Android发送的音频格式为mp3,iOS这边把音频使用.acc格式保存。导致无法播放,但是采用.amr 格式保存音频文件之后就能正常播放了。

2017年07月12日15:36:37
down了一个二维码的Demo,真机跑的时候提示这个错误。
This app has crashed because it attempted to access privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data
搜了一下,需要在projext的info.plist文件中增加一个key-value,Privacy - Camera Usage Description,iOS10之后都需要开启权限才能使用响应的功能,参考这里

2017年07月15日16:32:08

iOS开发日志_第12张图片
framwork重复添加

在LinkBinaryWithLibraries中删除掉多余的framwork就可以了。

2017年07月16日08:54:47

iOS开发日志_第13张图片
报黄提示说CopyBundleResources中包含.plist文件

百度的解决办法,只要把Build Phases下 Copy Bundle Resources 里的 info.plist文件去掉就可以了。可能是因为修改过info.plist文件,导致其被添加到了这里,实际上不用添加到这里的。

2017年07月17日09:13:39

iOS开发日志_第14张图片
报黄Directory not found

到Build Settings 下的Search Paths 中找到警告的文件路径删除掉就可以了。 百度的解决办法

2017年07月28日11:14:09

Xcode调试的时候变量全部都没有值了,原因是把project schme -> Info -> Build Configuration 改为了Release,所有的变量的值就都会为nil。改回D

2017年08月02日21:59:13

CGPDFDocumentCreateWithURL(url)iOS10 上失效

项目中有个需求是用UIWebView展示pdf发票文件,然后可以把这些发票转成一张张的图片保存到相册中。昨天测试突然提出来保存图片失败。检查了下,最终定位到上面的函数,函数给的url是服务器的pdf文件的url,之前会比较快速的返回结果。但是现在这个函数会过了三四分钟才返回nil的结果。百度的各种说法都尝试了下,没有办法;于是转换思路,用AFNetWorking先把pdf文件下载到沙盒,然后再用CGPDFDocumentCreateWithURL读取沙盒中的pdf文件,就能够返回结果了。问题算是解决了

2017年08月05日08:13:49
  • (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 没有效果的原因

之前做聊天气泡背景的时候用过一次这个,当时也是半天不起作用;这次又有需求用到,这个操作的图片必须在2x里面才起作用,如果图片是放到1x中是不会有效果的。

2017年09月23日14:45:31

运行Xcode9模拟器iPhone X,一直无法正常运行。

iOS开发日志_第15张图片
无法运行模拟器

结合 这篇文章,发现是刚刚用Xcode8.3打开过工程没有完全退出。但是之前这样混着打开项目也没有问题,但将Xcode8.3完全退出之后,在运行就没有问题了。

2017年09月23日14:51:06

iOS开发日志_第16张图片
bitcode报错

看ld:信息可以知道是bitcode的问题,但bitcode是上面东西呢? Bitcode适配指南和 理解Bitcode:一种中间代码这两篇文章可以知道bitcode打开之后,apple可以帮我们优化app。但是如果我们使用的framework中有不支持bitcode的,我们就需要在设置中关闭它,否则项目会一直报错。

iOS开发日志_第17张图片
关闭bitcode

你可能感兴趣的:(iOS开发日志)