最近做到一些项目想到用 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. 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句

    如题: 一对一关联查询时使用relation连贯操作查询后,调用getLastSql()方法输出的sql语句不是一条关联查询语句. 例如: $list = $db->relation(true) ...

  2. C语言杂谈(三)存储类别

    本文讨论C语言中的存储类别,包括数据在内存的存储.变量的存储类别.函数的存储类别.生存周期.下图为计算机的存储空间,有寄存器和内存. 一.存储区域 1.寄存器:存放立即参加运算的数据. 2.系统区:存 ...

  3. Example to use django queryset

    from django.db.models import get_app, get_models, get_model from django.db import models #get the ce ...

  4. 【C++】array初始化0

    让代码...优雅? ==================分割线==================== 局部数组:没有默认值,如果声明的时候不定义,则会出现随机数(undefined):如果声明的长度 ...

  5. tarjan算法求割点cojs 8

    tarjan求割点:cojs 8. 备用交换机 ★★   输入文件:gd.in   输出文件:gd.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] n个城市之间有通讯网 ...

  6. [转载]ExtJs4 笔记(7) Ext.tip.ToolTip 提示

    作者:李盼(Lipan)出处:[Lipan] (http://www.cnblogs.com/lipan/)版权声明:本文的版权归作者与博客园共有.转载时须注明本文的详细链接,否则作者将保留追究其法律 ...

  7. Bellman-Ford算法判负环

    算法思想:如果没有负权回路,dis数组应该会在n-1次松弛之后结束. 算法复杂度:O(n*m).比Dijkstra算法复杂度要高. 代码: bool Bellman_Ford(int s) { int ...

  8. HDU 1556 Color the ball

    这题用线段树的话简直就是一个水题..不过刚学树状数组,要用一下. 题意:每次给你a,b,表明a~b之间涂色,然后最后一次输出每个气球被涂色的次数. 要用树状数组就要考虑怎么转化为前缀和问题,这题可以这 ...

  9. 三维网格形变算法(Linear rotation-invariant coordinates和As-Rigid-As-Possible)

    在三维网格形变算法中,个人比较喜欢下面两个算法,算法的效果都比较不错, 不同的是文章[Lipman et al. 2005]算法对控制点平移不太敏感.下面分别介绍这两个算法: 文章[Lipman et ...

  10. AC日记——搞笑世界杯 codevs 1060(dp)

    题目描述 Description 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有 人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比赛.你和你的朋 ...