我的工作区结构如下:
-ProjectA
--项目B
--项目C
-Pods
我运行“pod update”,得到的结果是
-ProjectA
--项目B
--项目C
-Pods
-ProjectB <-这不应该出现在这里!
我的Podfile是:
platform :ios, '7.0'
inhibit_all_warnings!
workspace 'ProjectA'
target :ProjectA do
pod "AFNetworking", "~> 2.0"
pod 'Facebook-iOS-SDK'
pod 'SDWebImage'
pod 'FXBlurView'
pod 'RESideMenu'
pod 'RBStoryboardLink'
end
target :ProjectBTests do
xcodeproj 'Libraries/ProjectB/ProjectB'
pod 'Expecta'
pod 'Specta'
pod 'OCMock'
end那么,有没有可能对这样的行为做任何事情呢?
谢谢!
发布于 2014-09-29 01:50:55
请在coocoapods中将其注册为bug。生成的xcworkspace文件不正确。
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:ProjectA.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
<FileRef
location = "group:ProjectA/ProjectB/ProjectB.xcodeproj">
</FileRef>
</Workspace>发布于 2019-01-23 22:43:03
已在lib/cocoapods/installer/user_project_integrator.rb #create_workspace中替换此行
new_file_references = file_references - workspace.file_references使用下面的代码:
new_file_references = file_references - workspace.file_references
absolute_paths = workspace.file_references.map { |fr| fr.absolute_path(workspace_path) }
new_file_references = new_file_references.select { |fr| absolute_paths.include? fr.absolute_path(workspace_path) }基本上使用绝对路径来过滤已经添加到工作区的项。
发布于 2019-01-31 16:58:54
TLDR__:这是用户的工作区错误。要解决这个问题,只需在文本编辑器中打开工作区的contents.xcworkspacedata并简化所有相对路径即可。例如,OMGNotExistingDirectory/../FirstLibrary/FirstLibrary.xcodeproj现在应该看起来像FirstLibrary/FirstLibrary.xcodeproj
因此,有时在工作区中重新排列项目时,您的contents.xcworkspacedata可能会像这样结束:
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:App/App.xcodeproj">
</FileRef>
<FileRef
location = "group:OMGNotExistingDirectory/../FirstLibrary/FirstLibrary.xcodeproj">
</FileRef>
<FileRef
location = "group:SecondLibrary/SecondLibrary.xcodeproj">
</FileRef>
<FileRef
location = "group:ThirdLibrary/ThirdLibrary.xcodeproj">
</FileRef>
</Workspace>看到那个OMGNotExistingDirectory/../FirstLibrary/FirstLibrary.xcodeproj了吗?是的,这就是问题所在。即使路径中的文件夹不再存在,路径的/..部分也允许XCode忽略它并正常工作。
现在我们运行pod install。这里的问题是,当CocoaPods重组工作区时,它会比较相对路径,而不是绝对,以避免重复。当然,即使它们指向相同的文件,FirstLibrary/FirstLibrary.xcodeproj也不是OMGNotExistingDirectory/../FirstLibrary/FirstLibrary.xcodeproj。
因此,要解决这个问题,您必须通过删除工作区中的冗余部分来简化工作区中的相对路径。
感谢kezi的回答,它提供了问题所在的线索。
https://stackoverflow.com/questions/25387499
复制相似问题