|
| 1 | +# CocoaPods Hook |
| 2 | + |
| 3 | +> CocoaPods 会在其安装生命周期中提供各种 hook。这使用户可以自定义安装过程的多个时间点对其项目进行更改。 |
| 4 | + |
| 5 | +> hook方法还可以做一些其他语言脚本的执行,比如执行shell脚本,使用exec 后面跟上具体命令即可 |
| 6 | +sh命令文件是一样的 |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +## pre_install |
| 11 | + |
| 12 | +> pod install 之前可以做一些其他处理 |
| 13 | + |
| 14 | +``` |
| 15 | +pre_install do |installer| |
| 16 | + puts "pre install hook" |
| 17 | + Pod::UI.puts "pre install hook " |
| 18 | +end |
| 19 | + |
| 20 | +``` |
| 21 | + |
| 22 | +## post_install |
| 23 | + |
| 24 | +- pod install 之后可以做一些其他处理 |
| 25 | + |
| 26 | +``` |
| 27 | +post_install do |installer| |
| 28 | + puts "post install hook" |
| 29 | + exec 'pwd' |
| 30 | + |
| 31 | +end |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +post_install do |installer| |
| 36 | + # 遍历项目中所有target |
| 37 | + installer.pods_project.targets.each do |target| |
| 38 | + # 遍历build_configurations |
| 39 | + target.build_configurations.each do |config| |
| 40 | + # 修改build_settings中的ENABLE_BITCODE |
| 41 | + config.build_settings['ENABLE_BITCODE'] = 'NO' |
| 42 | + end |
| 43 | + end |
| 44 | +end |
| 45 | + |
| 46 | + |
| 47 | +# 开启 generate_multiple_pod_projects |
| 48 | + |
| 49 | +post_install do |installer| |
| 50 | + installer.generated_projects.each do |project| |
| 51 | + project.targets.each do |target| |
| 52 | + target.build_configurations.each do |config| |
| 53 | + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' |
| 54 | + end |
| 55 | + end |
| 56 | + end |
| 57 | +end |
| 58 | + |
| 59 | + |
| 60 | +``` |
| 61 | + |
| 62 | +## post_integrate |
| 63 | + |
| 64 | +> **1.10新增** 集成是安装过程的最后一步,它负责将生成的 Pods.xcodeproj 与用户的项目集成。这个 hook 将在完成后立即执行。 |
| 65 | + |
| 66 | +- 注意:这个 hook 在所有 .xcodeproj 保存(写入磁盘)之后执行。对 Pods.xcodeproj 进行更改将需要额外的 save 操作,但这可能会很慢。如果您预计在Pods.xcodeproj 保存到磁盘之前对其进行更改,则建议使用 post_install hook。 |
| 67 | + |
| 68 | + |
| 69 | +``` |
| 70 | +post_integrate do |installer| |
| 71 | + |
| 72 | + puts "post_integrate hook" |
| 73 | + |
| 74 | +end |
| 75 | + |
| 76 | +``` |
0 commit comments