Pod 抽风解决

之前Android有个任务在搞,一直没弄ios,今天新创建了一个功能使用pod管理依赖时发现抽风了,一直显示如下信息:

20171207151265628878950.png

看起来运行环境有问题,用brew install pod 又安装了一遍还是不行,于是开始一步步找哪里的变量配置错误了。

1、通过which pod查找pod可执行文件的位置如下:

/usr/local/bin/pod

我们知道pod是ruby脚本,因此直接用文本编辑器(我用sublime)打开发现内容如下:

#!/bin/bash
GEM_HOME="/usr/local/Cellar/cocoapods/1.3.1/libexec" exec "/usr/local/Cellar/cocoapods/1.3.1/libexec/bin/pod" "$@"

原来pod并非ruby脚本,而是个shell脚本,直接使用libexec 执行了pod 再一一查找发现两个文件都存在的。

2、确定问题

经过上述跟踪我们打开上述脚本文件中的/usr/local/Cellar/cocoapods/1.3.1/libexec/bin/pod,会发现第一行的位置正好是之前报错的内容,于是进行了如下修改:

20171207151265700272223.jpg

上图中红框标注的ruby路径原来为/System/Library/Frameworks/Ruby.framework/Version/2.0/usr/bin/ruby 这个路径是不存在的,而系统中安装的ruby路径如上因此修改之后测试通过

3、原因分析 可能是中间对环境进行升级了,原来的ruby不存在了导致的pod直接抽风了,不过不要紧,老哥稳!

2 IOS 知识点

1、动态调用方法objc_msgSend(self,@selector(likePlay));报错

解决办法在Apple LLVM 11.0 - Preprocessing选项中修改Enable Strict Checking of objc_msgSend Calls 的值为NO;

2、UIRequiresFullScreen 用于控制分屏多任务

3、ARC 模式下共存MRC源文件文件

在Targets -> Build Phases -> Compile Sources下为要共存的源文件添加-fno-objc-arc标签

3 后记

日积月累,勤耕不缀