Closed dabing1022 closed 3 years ago
我diff了一下正常的Pods/Pods.xcodeproj文件 区别在于
productType = "com.apple.product-type.library.static";
productType = "com.apple.product-type.framework";
但为啥同样的命令generate出来的项目的工程配置会有差别,还在排查。
大概原因是我本地使用RubyMine进行调试的是master最新代码,和cocoapods-imy-bin-0.3.0.11代码有所差别,而终端命令行调试用的是cocoapods-imy-bin-0.3.0.11。这里面有一些差异,比如:
我diff了master和0.3.0.11发版tag的代码,目前全部是readme的一些改动。猜测cocoapods-imy-bin-0.3.0.11在作者自己的分支上进行的发布,图片中的改动,并没有在master分支上这个文件的历史中找到。
建议:大家调试的时候使用稳定tag版本。master目前还存在一些改动,并没有得到验证。图中左侧为master的目前最新代码,
lipo -create -output #{output} #{libs.join(' ')}
用来合并不同架构的静态库,比如找到build-arm64/libXXX-iOS.a静态库,但该架构目录下其实打出来的静态库并没有带平台iOS的名字(多平台iOS),导致说静态库合并找不到文件报错。
def target_name
#区分多平台,如配置了多平台,会带上平台的名字
# 如libwebp-iOS
if @spec.available_platforms.count > 1
"#{@spec.name}-#{Platform.string_name(@spec.consumer(@platform).platform_name)}"
else
@spec.name
end
end
https://github.com/MeetYouDevs/cocoapods-imy-bin/issues/54 问题和这个问题有些相似,报错也一致。仔细看了build-{arch}的目录下都是framework,导致
lipo_build
因为缺少合并的.a静态库导致失败,走了rescue,后续因为
@skip_archive
为True,也不会build_static_library
。根本原因在于
pod bin auto --all-make
之后,Demo-build-temp/bin-archive/Demo/build-arm64
目录下是framework库,暂时没发现是怎么引起的。@su350380433 可否提供一下排查思路。十分感谢。
附
pod env
信息:Stack
Installation Source
Plugins
Podfile