Xcode 7 中 CocoaPods 编译报错 dyld: Library not loaded: @rpath/Pods.framework/Pods
2015-07-19 22:47
513 查看
问题症状与解决
在 Xcode 7 beta 3 (7A152u) 中创建 Swift 项目,并使用 CocoaPods 做依赖管理,编译时会遇到如下的报错:dyld: Library not loaded: @rpath/Pods.framework/Pods Referenced from: /private/var/mobile/Containers/Bundle/Application/26B91138-7483-40B0-9BE6-D27072472895/AppName.app/AppName Reason: image not found (lldb)
这个错误只在真机测试上遇到,模拟器没有问题。
解决方案是点击 target 的 Build Settings,切换到 All,搜索 bitcode,将其设置为 No,即可编译通过。
Bitcode 介绍
当项目进行编译时,Xcode 使用 clang 或者 swiftc 对项目进行编译,然后交给 LLVM 来创建二进制的包,以适配虚拟机(x86/64)和真机(arm6/arm7/arm7s/arm64)环境。这样得来的二进制包,被称为“胖二进制包”(Fat Binary)。如果启用 Bitcode 的话,那么生成“胖二进制包”的过程会被去掉,LLVM 只会生成一个中间语言 bitcode 包。这么干是有不少好处的,但是就不能在所有环境运行了,所以后面一步打包工作总是需要有人来做的——App Store来干这个事儿。这样一来,包体积更小,运行也更快了,也是 iOS9 “瘦身功能”的一部分。未来,所有的 WatchOS 应用会强制 bitcode 提交,但 iOS 应用还没有这个要求。
参考
App Thinning (iOS, watchOS): https://developer.apple.com/library/prerelease/watchos/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.htmlFat Binary: https://en.wikipedia.org/wiki/Fat_binary#Apple.27s_Universal_binary
LLVM: https://zh.wikipedia.org/wiki/LLVM
Impact of Xcode build options “Enable bitcode” Yes/No: http://stackoverflow.com/questions/31088618/impact-of-xcode-build-options-enable-bitcode-yes-no
Xcode 7 dyld:Library not loaded image not found: https://github.com/CocoaPods/CocoaPods/issues/3661
dyld: Library not loaded: @rpath/Pods.framework/Pods https://github.com/CocoaPods/CocoaPods/issues/3586
相关文章推荐
- jdbc 连接sql server 2005问题
- 单例解析
- 半个月实训总结
- 关于Broadcast
- UDP发送接收尺寸问题。
- mysql--表的操作
- POJ1298最难问题
- 2015071901 - 站军姿
- 黑马程序员--Objective-C语言基础知识--构造方法和内存管理
- 马哥linux视频的学习笔记
- CREATE_FUNC
- 什么才是优秀的用户界面设计
- 图论相关算法知识总结
- Hive高级查询(group by、 order by、 join等)
- asp.net 缓存
- Single Number II
- [转载]关于分布式系统的数据一致性问题
- 程序启动让LaunchImage全屏显示,状态栏隐藏,启动完成再显示
- (DBA之路十)《深入浅出MySQL数据库开发优化与管理维护》的读书笔记
- Desktop no head