Could not find a `ios` simulator (valid values: ). Ensure that Xcode -> Window -> Devices has at least one `ios` simulator listed or otherwise add one.
这个问题是pod依赖的组件fourflusher与xcode版本不匹配造成的,可以使用如下命令更新
必要的话还需要更新pod
sudo gem update cocoapods
[!] TestLib did not pass validation, due to 3 warnings (but you can use `--allow-warnings` to ignore them).
pod验证发现3个及以上的warning就会报这个错,如果只是验证一下工程,能确保对外发布之前能修复,可以使用--allow-warnings
如果验证通过,会看到TestLib passed validation.,到这一步既完成验证
版本:iOS和Swift管理通过pod官方模板做出来的工程iOS版本为8.0,Swift版本为4.0,我们有时需要根据需要修改版本号,需要在spec文件中添加:
# iOS版本 s.ios.deployment_target = '9.0' # Swift版本 s.swift_versions = '5.0'然后执行pod install更新工程即可
Git上传到私有库现在私有Git服务器创建TestLib项目,然后回到工程目录,使用Git初始化命令:
git init git remote add origin 私有仓库地址/TestLib.git git add . git commit -m 'init' git push -u origin master然后修改spec文件内容
# 主页、截图、license证书、作者信息、源代码地址、社交地址 s.homepage = 'http://私有库地址/TestLib.git' # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'xxx' => 'xxx@xxx.com' } s.source = { :git => 'http://私有库地址/TestLib.git', :tag => s.version.to_s }如果需要对外发布版本时需打tag,然后创建同名branch
git tag -a 0.1.0 -m '0.1.0' git branch 0.1.0 打包:pod package有时我们不希望提供源代码,只提供framework给外部调用,可以使用package,首先安装pod插件:
sudo gem install cocoapods-packagerpackage参数:
参数名 注释--force 覆盖之前的文件
--no-mangle 1.表示不使用name mangling技术,pod package默认是使用这个技术的。我们能在用pod package生成二进制库的时候会看到终端有输出Mangling symbols和Building mangled framework。表示使用了这个技术。2.如果你的pod库没有其他依赖的话,那么不使用这个命令也不会报错。但是如果有其他依赖,不使用--no-mangle这个命令的话,那么你在工程里使用生成的二进制库的时候就会报错:Undefined symbols for architecture x86_64。
--embedded 生成静态framework
--library 生成静态.a
--dynamic 生成动态framework
--bundle-identifier 动态framework需要的签名
--exclude-deps 不包含依赖的符号表,生成动态库的时候不能包含这个命令,动态库一定需要包含依赖的符号表
--configuration 表示生成的库是debug还是release,默认是release。--configuration=Debug
--subspecs 如果你的pod库有subspec,那么加上这个命名表示只给某个或几个subspec生成二进制库,--subspecs=subspec1,subspec2。生成的库的名字就是你podspec的名字,如果你想生成的库的名字跟subspec的名字一样,那么就需要修改podspec的名字。 这个脚本就是批量生成subspec的二进制库,每一个subspec的库名就是podspecName+subspecName。
--spec-sources=private,https://github.com/CocoaPods/Specs.git 一些依赖的source,如果你有依赖是来自于私有库的,那就需要加上那个私有库的source,默认是cocoapods的Specs仓库。--spec-sources=private,https://github.com/CocoaPods/Specs.git。
可以使用下面的命令打包:
pod package TestLib.podspec --force