更新:在同一个工作区中可以有两个“Pods.xcodeproj” ,但在同一个目录中是不可能的。
子目录解决方案
如果将“CoreProject”签入“MyProject”的子目录,则可以pod install
在“MyProject”和“CoreProject”两个目录中执行。这样,两个项目都可以拥有自己的“Pods.xcodeproj”。
这是做完之后的文件结构。
MyProject
├── MyProject
├── MyProject.xcodeproj
├── MyProject.xcworkspace
├── Podfile
├── Podfile.lock
├── Pods
│ └── Pods.xcodeproj
└── CoreProject
├── Core.m
├── CoreProject
├── CoreProject.xcodeproj
├── CoreProject.xcworkspace
├── Podfile
├── Podfile.lock
└── Pods
└── Pods.xcodeproj
最后,您应该执行以下步骤。
- 打开“MyProject.xcworkspace”
- 添加“CoreProject.xcodeproj”及其“Pods.xcodeproj”
- 从“MyProject”链接“CoreProject”
不要使用“CoreProject.xcworkspace”来编辑“MyProject”。
这是本例中的项目结构。
MyProject.xcworkspace
|
+-- MyProject.xcodeproj
+-- Pods.xcodeproj (for MyProject)
+-- CoreProject.xcodeproj
+-- Pods.xcodeproj (for CoreProject)
共享 pod 解决方案
如果您可以触摸 CoreProject 的 Pod,则以下解决方案是合适的。
您应该创建一个新的“Pods.xcodeproj”并与“MyProject”和“CoreProject”共享。
项目结构如下所示(与您的“新结构”相同,但 pod 已替换为新结构)。
MyApp
|
+-- MyApp.xcworkspace
|
+-- MyProject.xcodeproj
+-- CoreProject.xcodeproj
+-- Pods.xcodeproj (your own)
这是您工作区的示例 Podfile。如果从“MyProject”链接“CoreProject”,在这种情况下,您可以在两个项目中使用“AFNetworking”,但只能在“MyProject”中使用“SDWebImage”。
播客文件
workspace 'MyApp'
xcodeproj 'CoreProject.xcodeproj'
xcodeproj 'MyProject.xcodeproj'
target "CoreProject" do
pod 'AFNetworking'
xcodeproj 'CoreProject.xcodeproj'
end
target "CoreProjectTests", :exclusive => true do
pod 'OCMockito'
xcodeproj 'CoreProject.xcodeproj'
end
target "MyProject" do
pod 'SDWebImage'
xcodeproj 'MyProject.xcodeproj'
end
target "MyProjectTests", :exclusive => true do
pod 'OCHamcrest'
xcodeproj 'MyProject.xcodeproj'
end