获取特定方案的路径

Get path to particular scheme

我正在 Podfile 中编写一个 post_install 脚本,我需要修改一个特定的方案。我是 Ruby 的新手,所以我确定我有很多 bad/non-idiomatic 习惯。这是我拥有的:

post_install do |installer|
  pods_project = installer.pods_project
  scheme_filename = "BonMot.xcscheme"
  scheme = Xcodeproj::XCScheme.new File.join(pods_project.path, "xcshareddata/xcschemes", scheme_filename)
  # do stuff with scheme
end

如何避免中间的硬编码 xcshareddata/xcschemes?或者这是最好的方法吗?

您可以使用Xcodeproj::XCScheme.shared_data_dir(project_path)

(同意我们可以有一个更好的方法来创建一个 Xcodeproj::XCScheme 而不是直接从 Xcodeproj::Project 实例来使这更容易)

所以像这样的东西应该可以工作:

scheme_path = Xcodeproj::XCScheme.shared_data_dir(project.path) + 'BomMot.xcscheme'
scheme = Xcodeproj::XCScheme.new(scheme_path)