最近做到一些项目想到用 OC/Swift混编的问题、为了搞懂 bridge header 这个文件是咋个情况、却一致报错。最后不知不觉发现问题问题居然出在 Podfile 上。

开始我是从 IT 江湖的客户端开始了解Swift 的。git 下载下来发现build 不成功局让Clear 都是fail。不明白就把提示的问题放到网上去搜索发现还是不能解决问题。后来干脆自己建一个新项目发现还是存在问题。

error: unable to read module map contents from 'Target Support Files/Pods-SwiftyJSON/Pods-SwiftyJSON.modulemap': Error Domain=NSCocoaErrorDomain Code= "The file “Pods-SwiftyJSON.modulemap” couldn’t be opened because there is no such file." UserInfo=0x7faa00b59880 {NSFilePath=/Users/kyjun/Downloads/itjh-new15./Pods/Target Support Files/Pods-SwiftyJSON/Pods-SwiftyJSON.modulemap, NSUnderlyingError=0x7fa9fde95400 "The operation couldn’t be completed. No such file or directory"}
error: unable to read module map contents from 'Target Support Files/Pods-SwiftyJSON/Pods-SwiftyJSON.modulemap': Error Domain=NSCocoaErrorDomain Code= "The file “Pods-SwiftyJSON.modulemap” couldn’t be opened because there is no such file." UserInfo=0x7faa00ad0e50 {NSFilePath=/Users/kyjun/Downloads/itjh-new15./Pods/Target Support Files/Pods-SwiftyJSON/Pods-SwiftyJSON.modulemap, NSUnderlyingError=0x7fa9feadd930 "The operation couldn’t be completed. No such file or directory"}

后来发现“/Users/kyjun/Downloads/itjh-new15.01/Pods/Target Support Files/Pods-SwiftyJSON/Pods-SwiftyJSON.modulemap” 这个路径根本就不是我的项目路径啊!真心搞不懂。

最后将问题锁定在Podfile 上。下面介绍一下我之前的Podfile的写法:

platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
pod 'FMDB', '~> 2.2'
pod 'SDWebImage', '~> 3.5.2'
pod 'Reachability', '~> 3.1.1'
pod 'ASIHTTPRequest', '~> 1.8.1'
pod 'DTCoreText', '~> 1.6.11'
pod 'MJRefresh', '~> 1.4.6'
pod 'UMengFeedback', '~> 2.2'
pod 'ZBarSDK', '~> 1.3.1'
pod 'CHTCollectionViewWaterfallLayout', '~> 0.9.1'
pod 'DZNEmptyDataSet', '~> 1.5.2'
pod 'MWPhotoBrowser'

其实这样写是没有问题的、但是有可能会照成上面提到的错误信息。原因猜想可能是因为没有指定对应的 porject 或者 podfile 没有指定当前文件应该用于那个项目。导致在其他项目中用到同样的类库是会提示路径不匹配。

给大家一个建议以后创建项目是先创建一个空项目。

接下来看看我现在的Podfile 的写法:

=begin
这里写注释
=end source 'https://github.com/CocoaPods/Specs.git' platform :ios, '7.0'
inhibit_all_warnings! xcodeproj 'Demo.xcodeproj' target :Demo1 do
pod 'MBProgressHUD', '~> 0.9.1'
pod 'AFNetworking', '~> 2.5.4'
pod 'MJRefresh', '~> 2.3.2'
end
target :Demo2 do
pod 'MBProgressHUD', '~> 0.9.1'
pod 'AFNetworking', '~> 2.5.4'
pod 'MJRefresh', '~> 2.3.2'
end

说说重点:xcodeproj ‘demo.xcodeporj’ 这个指明用于那个项目.

target :Demo1 指明对应那个Target

这里说一说 为什么最好先建一个空项目。 大家都知道一个项目可以有多个Target 如果我们的项目名称和Target 的名称一致就会产生一个 Pod.debug 的配置文件,也就不会产生一个和Target 一致的Pod-target.debug 的配置文件。pod.debug 也是一个默认的配置文件。

如果我们在 xcodeporj 和 Target 之间 添加 pod ‘AFNetworking’ 同样会产生这个默认的配置文件。

遇到问题记录下来也希望看到的同仁有不同意见的一起讨论!

CocoaPods Podfile 文件写法有讲究的更多相关文章

  1. [CocoaPods]Podfile文件

    Podfile是一个描述一个或多个Xcode项目的目标依赖项的规范.该文件应该只是命名Podfile.指南中的所有示例都基于CocoaPods 1.0及更高版本. Podfile可以非常简单,这会将A ...

  2. CocoaPods对于不同Target引入不同的第三方库Podfile的写法

    有的时候我们需要建立多个Target来完成不同的测试环境的区分,而多个Target之间可能会有第三方库的不同引用,如果我们在使用CocoaPods管理我们的第三方库的时候,我们就需要思考我们需要如何实 ...

  3. Podfile文件用法详解

    https://www.jianshu.com/p/b8b889610b7e 2018.01.09 15:51* 字数 2343 阅读 6263评论 3喜欢 34 前言 iOS开发会经常用到cocoa ...

  4. CocoaPods Podfile详解与使用

    1.为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson.AFNetworking.Reachability等等.使用这些库的时候通常需要: 下载开源库的 ...

  5. cocoaPod的Podfile文件的创建和内容格式

    Podfile创建: 1.终端中,cd到项目总目录(cd +路径名) cd/........./......../...../项目名 2.终端中继续建立Podfile(配置文件) touch Podf ...

  6. ios pod库更新到1.0或1.0.1之正确修改podfile文件

    今天看到cocopods都更新到1.0.1了,之前什么时候更新到的1.0都没发现,刚刚更新一下之后,立马出现了一大堆的错误. 如果没有更新的话,建议不要更新!!!书写麻烦了! 现在记录如何一步一步去除 ...

  7. JS文件写法操作,DOM基本操作

     js文件写法.规范 // 定义全局变量 var num = 0;//这个是用来记数的. // 页面加载完成 window.onload = funtion(){ intVar();//初始化变量 s ...

  8. QT中PRO文件写法的详细介绍

    学习Qt时,发现有些知识看了不经常用就忘了,以下是书本上写的一些关于qmake的相关知识,自己看后,打算把一些经常用到的记下来,整理整理. Qt程序一般使用Qt提供的qmake工具来编译. qmake ...

  9. linux系统初始化——sysinit文件写法详解

    sysinit文件写法详解 sysinit文件是linux初始化文件系统时执行的第一个脚本文件.它主要做在各个运行级别中进行初始化工作,包括: 启动交换分区;检查磁盘;设置主机名;检查并挂载文件系统; ...

随机推荐

  1. python中列表和元组以及字符串的操作

    python中列表是非常好用的.不过有一些使用小细节还需要注意一下. tag[32:-4] 从index为32到tag的倒数第4个字符. 如果索引为32的值在倒数第4个字符的右边,那么将输出为空.只要 ...

  2. linux 下安装nodejs,CentOS 6.5 系统

    本文采用nodejs 通过源码编译安装方式 编译需要gcc-c++编译器和openssl-devel库的支持,如果没有需要先安装. 在centos下可以先执行:yum install gcc-c++ ...

  3. 爆零后的感受外加一道强联通分量HDU 4635的题解

    今天又爆零了,又是又,怎么又是又,爆零爆多了,又也就经常挂嘴边了,看到这句话,你一定很想说一句””,弱菜被骂傻,也很正常啦. 如果你不开心,可以考虑往下看. 翻到E(HDU 4635 Strongly ...

  4. Hadoop中WritableComparable 和 comparator

    1.WritableComparable 查看HadoopAPI,如图所示: WritableComparable继承自Writable和java.lang.Comparable接口,是一个Writa ...

  5. 在linux下安装某个硬件驱动到方法

    东西很简单,几句话就能说清除. 使用lsipc检查你需要安装到硬件,记住硬件到关键型号,去搜索引擎搜索linux下的驱动文件 对文件进行安装简单的解压后基本上是 ./configure &&a ...

  6. HTML设置超链接字体颜色和点击后的字体颜色

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. AC日记——潜伏者 洛谷 P1071 (模拟)

    题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原 ...

  8. js 日期2015/12/22/16/45替换2015-12-22 16:45格式

    js 日期2015/12/22/16/45替换2015-12-22 16:45格式 利用正则分组: function toChange(date) { var reg = /(\d+)\/(\d+)\ ...

  9. Linux下smokeping网络监控环境部署记录

    smokeping是一款监控网络状态和稳定性的开源软件(它是rrdtool的作者开发的),通过它可以监控到公司IDC的网络状况,如延时,丢包率,是否BGP多线等:smokeping会向目标设备和系统发 ...

  10. [Erlang37]error/1 exit/1 exit/2 throw/1的区别

    1. error/1 主要是系统用来定义内部错误的: Erlang内建的run time error 一共有10种: function_clause/case_clause/if_clause/bad ...