关于Xcode添加CocoaPods网上资料很多,但是都是OC,而Swift和Xcode10坑又很多。这里集中整理下
需求
- 写一个工具类库,以Cocoapods私有库的形式对主项目提供支持
- 此工具库依赖其他Cocoapods库
- 添加单元测试
具体步骤
-
建立Cocoapods私有库,可以看我这边如何自己写一个iOS第三方库
-
添加测试
Xcode-New-Target-iOS Unit Testing Bundle
3.修改Podfile如下
platform :ios, '9.0'
use_frameworks!
inhibit_all_warnings!
target 'MyUtils' do
pod 'XCGLogger', '~> 6.1.0'
target 'MyUtilsTests' do
inherit! :search_paths
end
end
- CMD+U 运行
这里感觉坑挺多的,比如我就会抛出错误
Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib
couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle
其实就是有库没有加载
可以尝试下列方法解决:
- 你的项目 -> Build Settings -> Linking -> Runpath Search Paths 添加@executable_path/Frameworks。如果已经有的话,先删了再Clean再添加
- 检查两个Target(Utils和Tests) - Build Settings - Always Embed Swift Libraries设置为Yes
- 删除~/Library/Developer/Xcode/DerivedData下的所有再试试
以上
如果你像我一样尝试了这些之后还是没有解决问题,可以像我一样在Tests里写个print("hello")然后就正常了😂
怀疑是Xcode10的bug吧。
另外,自己写的framework暴露的接口前面最好加public,不建议加open
需要在Tests里引入测试的module可以用
@testable import MyUtils
网友评论