美文网首页Android开发笔记
iOS常见问题解决方案

iOS常见问题解决方案

作者: 天使君 | 来源:发表于2017-12-04 18:22 被阅读0次

    ### pod setup命令执行错误解决

    !] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master

    Cloning into 'master'...

    error: RPC failed; curl 56 SSLRead() return error -36

    fatal: The remote end hung up unexpectedly

    fatal: early EOF

    fatal: index-pack failed

    ***** BEGIN *****

    $ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developers

    # 后面的地址你可以打开Xcode显示包内容,找到那个文件夹拖到终端里面

    $ cd ~/.cocoapods/

    $ du -sh * #查看到883M多就可以了

    ***** END *****

    ### Foundation报错

    # 可能是项目中用到.c文件,而且你也用了.pch文件

    同时适用于pch包含的文件不会包含于c文件中

    iOS项目工程,添加一个c文件,编译报错,Could not build module 'Foundation'

    检查你的*.pch文件,将#import用#ifdef __OBJC__    #endif包裹起来

    eg:

    #ifdef __OBJC

    #import <Masonry/Masonry.h>

    #endif

    ### COCOAPODS安装教程

    $ gem sources —-remove https://rubygems.org

    $ gem sources -a https://ruby.taobao.org/

    $ gem sources -l

    $ sudo gem install cocoapods

    $ vim Podfile

    $ pod install

    $ sudo gem install -n /usr/local/bin cocoapods  #更新cocoapods

    $ sudo gem update --system  #更新gem

    ### 执行pod setup很慢很慢的解决方案

    ***** BEGIN *****

    $ pod install --verbose --no-repo-update

    $ pod repo add master https://gitcafe.com/akuandev/Specs.git

    $ git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

    $ pod repo update

    $ cd ~/.cocoapods

    $ du -sh #查看pod repo的下载进度

    ***** END *****

    ### 安装cocoapods报错

    ERROR:  Error installing cocoa:

    activesupport requires Ruby version >= 2.2.2.

    ***** BEGIN *****

    $ curl -L get.rvm.io | bash -s stable

    $ source ~/.bashrc

    $ source ~/.bash_profile

    $ rvm install 2.2.2

    $ rvm -v

    ***** END *****

    ### 分析崩溃日志

    & tip:Xcode->Product->Analyze => Buildtime 查看分析结果并进行代码优化.

    EXC_BAD_ACCESS:通常用于访问了不该访问的内存导致

    SIGSEGV: 通常由于重复释放对象导致,这种类型在切换了ARC以后应该已经很少见到了。

    SIGABRT:  收到Abort信号退出,通常Foundation库中的容器为了保护状态正常会做一些检测,例如插入nil到数组中等会遇到此类错误。

    SEGV:(Segmentation  Violation),代表无效内存地址,比如空指针,未初始化指针,栈溢出等

    SIGBUS:总线错误,与 SIGSEGV 不同的是,SIGSEGV 访问的是无效地址,而 SIGBUS 访问的是有效地址,但总线访问异常(如地址对齐问题)

    SIGILL:尝试执行非法的指令,可能不被识别或者没有权限

    SIGTRAP:由断点指令或其它trap指令产生. 由debugger使用。

    SIGTRAP代表陷阱信号。它并不是一个真正的崩溃信号。它会在处理器执行trap指令发送。LLDB调试器通常会处理此信号,并在指定的断点处停止运行。如果你收到了原因不明的SIGTRAP,先清除上次的输出,然后重新进行构建通常能解决这个问题

    & 在LLDB控制台上键入bt命令打印出回溯信息。

    0x8badf00d  在iOS上,它经常出现在执行一个同步网络调用而阻塞主线程的情况。因此,永远不要进行同步网络调用。这个异常一般是因为系统监视器(watch dog)发现超时现象,终止app抛出,比如启动或终止超时,或者是响应系统事件超时。

    相关文章

      网友评论

        本文标题:iOS常见问题解决方案

        本文链接:https://www.haomeiwen.com/subject/npaxixtx.html