MeetYouDevs / cocoapods-imy-bin

1.06k stars 245 forks source link

二进制组件制作正常,配置全部启用二进制,pod bin install后只有部分pod库启用二进制? #121

Closed y2kbug closed 3 years ago

y2kbug commented 3 years ago

二进制组件制作正常制作正常,对应的静态资源服务器.banay路径下都有二进制zip,在podfile_local已经配置全部启用二进制,pod bin install 或pod bin update后,发现只有部分pod库 被替换framework或.a二进制形式,现在如何排查这个问题?

dabing1022 commented 3 years ago

pod bin install --verbose > log.txt 仔细查看下log.txt,看下本应该是binary的却下载源码的那些库,然后确认下

  1. 二进制索引库里面是否有对应的版本
  2. zip包下载地址是否能正常下载到zip包
y2kbug commented 3 years ago

根据提示排查以下几个问题 1、二进制索引库有对应的版本 2、zip包地址下载正常 3、对应MongDB也有对应记录

从verbose模式下日志看到确实是找不到对应版本二进制用源码替代

以Masonry为例子

  1. 二进制索引库截图 image

2、数据库记录 image

提问: pod bin install --verbose下正常替换成功二进制库会打印日志吗?从日记上看到都是替换失败的日志记录 image

y2kbug commented 3 years ago

调试源码发现问题在resolver.rb这段代码

         use_binary_rspecs = if podfile.use_binaries? || podfile.use_binaries_selector
                                rspecs.select do |rspec|
                                  ([rspec.name, rspec.root.name] & use_source_pods).empty? &&
                                    (podfile.use_binaries_selector.nil? || podfile.use_binaries_selector.call(rspec.spec))
                                end
                              else
                                []
                              end

use_binary_rspecs数组在podfile_local配置正常的情况下依旧返回空数据,没有满足判断条件``` ([rspec.name, rspec.root.name] & use_source_pods).empty? && (podfile.use_binaries_selector.nil? || podfile.use_binaries_selector.call(rspec.spec))