CocoaPods Podfile 文件写法有讲究

最近做到一些项目想到用 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=260 "The file “Pods-SwiftyJSON.modulemap” couldn’t be opened because there is no such file." UserInfo=0x7faa00b59880 {NSFilePath=/Users/kyjun/Downloads/itjh-new15.01/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=260 "The file “Pods-SwiftyJSON.modulemap” couldn’t be opened because there is no such file." UserInfo=0x7faa00ad0e50 {NSFilePath=/Users/kyjun/Downloads/itjh-new15.01/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’ 同样会产生这个默认的配置文件。

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

时间: 2024-10-29 19:11:11

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

Podfile文件详解

经常使用CocoaPods来管理iOS项目中的第三方库,但是我们要使用CocoaPods来管理第三方库,前提是要写好Podfile文件,通过这个文件来配置第三方库与项目之间的依赖.版本等信息. 但是,我相信很少有人完整地学习过Podfile的语法规则,包括笔者在写本篇文章之前.今天,请大家与笔者一起来完整地学习Podfile官方教程. 之前一直想写来着,因为包括笔者在内并没有深入学习过它的使用.如果对之不够了解,如何能做到善用之.因此,下面一起来探讨探讨吧! 什么是Podfile 官方只有一句话

Podfile文件用法详解

https://www.jianshu.com/p/b8b889610b7e 2018.01.09 15:51* 字数 2343 阅读 6263评论 3喜欢 34 前言 iOS开发会经常用到cocoapods管理第三方,简单.方便.高效.如何集成cocoapods在cocoapods官网和Podfile语法说明会有详细介绍,本文我想介绍的是关于集成cocoapods时会用到的一个文件Podfile文件. 什么是Podfile Podfile是一个规范,描述了一个或多个一套工程目标的依赖项 一个简

cocos2d-x 3.0 引用第三方库 及编译成apk时android mk文件写法

cocos2d-x 3.0 中,如果你需要使用CocosStudio.Extensions扩展库 等等,都需要自己手动添加. 添加步骤如下:(比如说现在我要添加libExtensions,libCocosStudio , libGUI) 1.添加附加项目 右击解决方案--->添加现有项目--->添加:项目目录\cocos2d\extensions\proj.win32\libExtensions,然后你会发现左边多了一个libExtensions扩展库 右击解决方案--->添加现有项目-

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

今天看到cocopods都更新到1.0.1了,之前什么时候更新到的1.0都没发现,刚刚更新一下之后,立马出现了一大堆的错误. 如果没有更新的话,建议不要更新!!!书写麻烦了! 现在记录如何一步一步去除错误的: 1.pod --version 查看版本号,现在如果看小于1.0.1 输入 pod repo update 更新pod版本. 再次输入 pod --version 查看版本号是否为1.0.1 如果是,那恭喜你开始脱坑之旅! 2.更新Podfile文件 这是我之前的 platform:ios

标准头文件写法

头文件只放声明,禁止放任何代码包括全部变量的定义,(全局放在.c文件里面去) #ifndef _HEADER_H #define _HEADER_H #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif #endif

HTML上传文件写法

来源于:http://www.cnblogs.com/SkySoot/p/3525139.html html 表单上传文件 一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率.这里写一个用 html 表单进行文件上传的示例. 1. 表单元素选用 <input type="file"> 控件. 2. form 表单需要设置 enctype="multipart/form-data" 属性,请求报文体中数据格式也由键值对更改为数据头

makefile文件写法解析

一个makefile文件如下: # this is a makefile #这一行是注释 NAME = MemInfo.exe #下来这几行是宏定义,相当于linux的变量 OBJS = $(NAME).obj RES = $(NAME).res LINK_FLAG = /subsystem:windows ML_FLAG = /c /coff $(NAME): $(OBJS) $(RES) #这一行指出最终生成的exe文件依赖哪些obj和res文件 Link $(LINK_FLAG) $(OB

VHDL测试文件写法

今天偶然要写来测试芯片的.以前都是写的verilog,无奈芯片使用VHDL写的,好像不能用verilog写的测试文件去测vhd文件.所以只能现学.在这里贴出基本的格式,以后方便查阅. (VHDL易错点,在每个end--后都会有分号,经常忘记)

iOS - 逆向 - Objective-C代码混淆 -confuse.sh文件写法

class-dump可以很方便的导出程序头文件,不仅让攻击者了解了程序结构方便逆向,还让着急赶进度时写出的欠完善的程序给同行留下笑柄. 所以,我们迫切的希望混淆自己的代码. 混淆的常规思路 混淆分许多思路,比如: 1)花代码花指令,即随意往程序中加入迷惑人的代码指令 2)易读字符替换 等等 防止class-dump出可读信息的有效办法是易读字符替换. Objective-C的方法名混淆 混淆的时机 我们希望在开发时一直保留清晰可读的程序代码,方便自己. 同时,希望编译出来的二进制包含乱七八糟的混