挂钩 Podfile 以编辑我的项目文件

Hook in Podfile to edit my project file

我想修复 Cocoapods 错误,当它为扩展目标添加 Embed Pods Frameworks 构建阶段时。那里不需要这些阶段。

https://github.com/CocoaPods/CocoaPods/issues/4203

我写了脚本来删除它

puts "Deleting not needed phases…"
project_path = "Keyboard.xcodeproj"
project = Xcodeproj::Project.open(project_path)
project.targets.each do |target|
    if target.name.include?("Extension")
        phase = target.shell_script_build_phases.find { |bp| bp.name == 'Embed Pods Frameworks' }
        if !phase.nil?
            puts "Deleting Embed Pods Frameworks phase…"
            target.build_phases.delete(phase)
        end
    end
end

project.save

我可以在 pod install 之后手动 运行 这个脚本,但我想以某种方式将它添加到 Podfile。它在 post_install 挂钩

中不起作用
post_install do |installer|
    ...
end

因为 UserProjectIntegrator.integrate!post_install 之后被调用并且它覆盖了我的更改。

有什么方法可以将此脚本集成到 Podfile 中吗?

简短的回答是否定的。
长答案:
根据 pod install --verbose 的输出,构建阶段 Embed Pods Frameworks 被添加到 Integrating client project 中,它在 Podfile 中的 post_install 步骤之后运行。 这就是为什么你应该在 pod 安装完成后单独执行这个脚本 运行.