iOS 动态修改pods配置
2022-04-12 本文已影响0人
O乞力马扎罗的雪O
我们都知道在使用pod install命令后, pods库的一些设置或者文件改动都会被重置, 那么如何防止这种情况发生呢? 可以使用下面介绍的方法↓↓↓↓↓↓
修改pod库设置
#pod安装时修改设置或文件
post_install do |installer|
## 修改文件内容 ( Fix for Xcode 12.5)
## find_and_replace(文件路径,被替换内容,替换内容)
find_and_replace("Pods/FBRetainCycleDetector/FBRetainCycleDetector/Layout/Classes/FBClassStrongLayout.mm",
"layoutCache[currentClass] = ivars;", "layoutCache[(id<NSCopying>)currentClass] = ivars;")
# 依赖库的设置
installer.pods_project.targets.each do |target|
if target.name == 'AFNetworking'
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
if target.name == 'Alamofire'
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '5'
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end
end
修改pod库某文件指定内容
def find_and_replace(dir, findstr, replacestr)
Dir[dir].each do |name|
text = File.read(name)
replace = text.gsub(findstr,replacestr)
if text != replace
puts "Fix: " + name
File.open(name, "w") { |file| file.puts replace }
STDOUT.flush
end
end
Dir[dir + '*/'].each(&method(:find_and_replace))
end
pods相关命令
#pod install --verbose --no-repo-update 仓库不升级
#pod install --repo-update 仓库升级
#git update-index --assume-unchanged <files> 强制忽略指定文件
#git update-index --no-assume-unchanged <files> 取消强制忽略指定文件
#git rm -r --cached <files> 删除某个文件的跟踪记录
#pod cache clean AFNetworking 清除库缓存
同时加载动态库和静态库
# 使用动态库
def commom_Pod_Use_Frameworks
use_frameworks!
pod 'AFNetworking', '4.0.1'
end
# 不使用动态库
def commom_Pod_NoUse_Frameworks
pod 'Yoga', :path => '/Library/rn/node_modules/react-native/ReactCommon/yoga'
end
target 'Demo' do
commom_Pod_Use_Frameworks
commom_Pod_NoUse_Frameworks
end
忽略引入库的所有警告
inhibit_all_warnings!