我想在作業區中包含的所有專案之間共享 pod。這也包括將來要添加的任何其他專案。我當前的專案檔案夾結構大致如下所示:
-- MyApp
|
-- MyApp.xcworkspace
|
-- Group 1
| |
| -- Project1
| | |
| | -- Target1.xcodeproj
| | -- (source code)
| | |
| | -- Target1Tests
| | -- (source code)
| |
| -- Project2
| | |
| | -- Target2.xcodeproj
| | -- (source code)
| | |
| | -- Target2Tests
| | -- (source code)
|
-- Group 2
| |
| -- Project3
| | |
| | -- Target3.xcodeproj
| | -- (source code)
| | |
| | -- Target3Tests
| | -- (source code)
| |
| -- Project4
| | |
| | -- Target4.xcodeproj
| | -- (source code)
| | |
| | -- Target4Tests
| | -- (source code)
我已經探索過使用抽象目標,但它仍然需要明確指定所有目標,并且在我的作業區中我有很多專案。以我對 ruby?? 的有限知識,這是我能夠想出的:
use_frameworks!
def shared_pods
pod 'Pod1'
pod 'Pod2'
end
Dir["**/*.xcodeproj"].select { |project_path| !project_path.to_s.start_with?('Pods') }.each do |project_path|
project_target = File.basename(project_path, ".xcodeproj")
target project_target do
workspace 'MyApp'
project project_path
shared_pods
end
target "#{project_target}Tests" do
inherit! :search_paths
end
end
但運行pod install我收到此錯誤:
[!] Could not automatically select an Xcode project. Specify one in your Podfile like so:
project 'path/to/Project.xcodeproj'
有什么方法可以實作我的目標嗎?
uj5u.com熱心網友回復:
從@KirilS 鏈接的這個答案中獲得一些靈感后,我想出了這個修改后的 pod 檔案:
use_frameworks!
def shared_pods
pod 'Pod1'
pod 'Pod2'
end
workspace 'MyApp'
abstract_target 'MyAppDependency' do
shared_pods
Dir["**/*.xcodeproj"].select { |project_path| !project_path.to_s.start_with?('Pods') }.each do |project_path|
proj = Xcodeproj::Project.open project_path
proj.targets.each do |t|
target t.name do
project project_path
end
end
end
end
具有更好語法的替代方法:
use_frameworks!
def shared_pods
pod 'Pod1'
pod 'Pod2'
end
my_ws = 'MyApp'
workspace my_ws
abstract_target 'MyAppDependency' do
shared_pods
Xcodeproj::Workspace.new_from_xcworkspace("#{my_ws}.xcworkspace").file_references
.select { |file| /^((?!Pods).)*\.xcodeproj/.match file.path }
.map { |file| Xcodeproj::Project.open file.path }.each do |proj|
proj.targets.each do |t|
target t.name do
project proj.path
end
end
end
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/373354.html
上一篇:如何從CGI::Cookie.parse獲取cookie值?
下一篇:基于預期日期的分期付款訂單數
