这是公司之前外包出去的项目,现在要做一些小的改动 不想再找外包了 ,就让我试试。
我从git库拉下了尘封已久的ios代码。。。
不扯犊子了,直接说问题,可以归成三个问题:
1. unknown type name 'link' : link to non existing header file?
2. 提示找不到 “UMMobClick/MobClick.h”
3. Apple Mach-O Linker Error
ld: library not found for -lAFNetworking
linker command failed with exit code 1 (use -v to see invocation)
我主要遇到就是这三个问题,下面说说怎么解决的:
第一个问题,经过多方百度发现它可能跟一个叫pod的东西有关系,然后又通过pod 发现了cocoapods,又经多方查证发现它俩是一回事儿。。。
于是就安装了cocoapods ,安装方法网上很多 基本上开始都说要修改源,但是我改来改去不行 ,最后改回默认的 直接 :sudo gem install cocoapods 就哦了(当然后面还有一些步骤,按教程走就行了 挺顺利的)。。。
pod install 之后,报错少了不少,但是出现了问题二。。。
第二个问题,找不到 “UMMobClick/MobClick.h”。 经过对比发现我 pod install之后的代码 比git库里的少了一个文件夹:
少了这个 UMengAnalytics ;
我开始的解决办法是: 把git库里的搞下来放进去 或者 在Pods/UMengAnalytics/......下面也可以找到这三个文件 按照原来的目录结构创建文件夹放进去就行了。
后来在https://stackoverflow.com/questions/37571459/xcode-pods-unknown-type-name-link-link-to-non-existing-header-file 找到了一段神代码:
echo "-------- Renaming original Podfile..."
mv podfile podfile.temp
echo "-------- Creating empty Podfile..."
pod init
echo "-------- Removing all pods..."
pod install
echo "-------- Deleting empty Podfile..."
rm podfile
echo "-------- Restoring original Podfile..."
mv podfile.temp podfile
echo "-------- Restoring all pods"
pod install
大概就是把pods重新初始化了一下,结果“UMMobClick/MobClick.h”就回来了 我只想说:很神奇。。。
然后再 run 就只有一个报错了,就是第三个。。。
第三个问题,困扰了我一天一夜(其实昨天晚上睡的挺早的~~!)。。。
百度了好久都没有搞定,后来找到了这个:
http://www.jianshu.com/p/72aec7e38ef0?from=groupmessage 我觉得这位大神讲的很好,但是依然没能解决我的问题。。。
无力的我决定参观一下 AFNetworking 的官网 ,在github 找到了官方的Getting Started 文档,我惊喜的发现官方也用的是cocoapods ,于是顺着教程看到了这句:
From now on, be sure to always open the generated Xcode workspace (
.xcworkspace
) instead of the project file when building your project:$ open <YourProjectName>.xcworkspace
我英文不好,但是也大概看明白上面的说明了,为了保险起见我百度了 “open” 命令(mac新手~~!)
于是我发现了一个惊天秘密:
使用cocoapods的项目要双击 myapp.xcworkspace 打开,而不是 myapp.xcodeproj
打开之后Xcode中会多出一个:
然后,你会感觉世界变得美好了。。。
我要是早点发现这个“秘密”,可能就不会有前面的问题了。。。哎,成长的代价。。。
以上就是我的心路历程。。。