最近封裝公司的私有庫(kù)秃励,由于要對(duì)接Engine,Engine提供的庫(kù)很多不支持模擬器編譯吉捶,那么私有庫(kù)發(fā)版就無(wú)法通過(guò)正常的驗(yàn)證夺鲜。最好的解決方案肯定是廓鞠,讓上游所有的SDK是支持模擬器的,基本上是可以做的谣旁,就是時(shí)間問(wèn)題床佳。不過(guò)很煩的是,部門間的額溝通往往沒(méi)這么快榄审,所以需要我們研究一下避開驗(yàn)證砌们,直接發(fā)布的方式來(lái)解決當(dāng)前問(wèn)題。
那么如何來(lái)解決呢搁进?
具體步驟:
1)浪感、.podspec文件中添加s.pod_target_xcconfig = { 'skip_validation' => true }
,主要是添加跳過(guò)驗(yàn)證標(biāo)識(shí)符
2)饼问、找到檢測(cè)源碼的文件validator.rb
影兽,修改它跳過(guò)驗(yàn)證。
如何找到呢莱革?
在終端中鍵入gem which cocoapods
/Users/ios_team08/.rvm/gems/ruby-2.3.3@global/gems/cocoapods-1.6.1/lib/cocoapods.rb
順藤摸瓜峻堰,在對(duì)應(yīng)的路徑下找到validator.rb
:
/Users/ios_team08/.rvm/rubies/ruby-2.3.3/lib/ruby/gems/2.3.0/gems/cocoapods-1.6.1/lib/cocoapods/validator.rb
打開此文件找到對(duì)應(yīng)的ios的驗(yàn)證,如下圖位置:
替換代碼
command += %w(CODE_SIGN_IDENTITY=- -sdk iphonesimulator)
command += Fourflusher::SimControl.new.destination(:oldest, 'iOS', deployment_target)
xcconfig = consumer.pod_target_xcconfig
if xcconfig
archs = xcconfig['VALID_ARCHS']
if archs && (archs.include? 'armv7') && !(archs.include? 'i386') && (archs.include? 'x86_64')
# Prevent Xcodebuild from testing the non-existent i386 simulator if armv7 is specified without i386
command += %w(ARCHS=x86_64)
end
end
為以下代碼:
xcconfig = consumer.pod_target_xcconfig
if xcconfig && xcconfig['skip_validation']
command += %w(--help)
print("===========================warning :: SKIP VALIDATION============================'\n'")
else
command += %w(CODE_SIGN_IDENTITY=- -sdk iphonesimulator)
command += Fourflusher::SimControl.new.destination(:oldest, 'iOS', deployment_target)
xcconfig = consumer.pod_target_xcconfig
if xcconfig
archs = xcconfig['VALID_ARCHS']
if archs && (archs.include? 'armv7') && !(archs.include? 'i386') && (archs.include? 'x86_64')
# Prevent Xcodebuild from testing the non-existent i386 simulator if armv7 is specified without i386
command += %w(ARCHS=x86_64)
end
end
end
然后再次運(yùn)行運(yùn)行驗(yàn)證或者push都沒(méi)問(wèn)題了盅视,不過(guò)此方案為避開驗(yàn)證捐名,最好能不使用還是不要使用。
那么有沒(méi)有不修改電腦配置和.podspec配置闹击,繞過(guò)驗(yàn)證直接發(fā)版本的方式呢镶蹋?
當(dāng)然也是有的。
如何做呢赏半?
私有倉(cāng)庫(kù)發(fā)布版本的過(guò)程實(shí)際也是向你的私有Specs倉(cāng)庫(kù)commit的過(guò)程贺归,如果你的倉(cāng)庫(kù)提交后也可以直接在你的Specs倉(cāng)庫(kù)上傳對(duì)應(yīng)的版本.podspec
如下圖所示,直接創(chuàng)建對(duì)應(yīng)文件夾断箫,上傳需要發(fā)布的.podspec即可