【发布时间】:2023-04-03 13:59:01
【问题描述】:
我使用 Xcode 7 beta 3 将适用于 iOS 的 Swift 1.x 项目转换为 Swift 2.x。它可以编译并运行,但我仍然有一个链接器警告。我已经通过 project.pbxprox 搜索了有问题的路径,并查看了 Xcode 中的“构建设置”,但没有发现有问题的路径的迹象(甚至在库搜索路径或框架搜索路径中也没有)。但是,我确实发现 xcuser 状态文件包含子字符串。
警告:'ld: warning: directory not found for option "-F/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworks\"'
搜索:
[foo@bar baz{Swift2}]$ grep -r Baz.xcodeproj/ iPhoneOS9.0
grep: iPhoneOS9.0: No such file or directory
[foo@bar baz{Swift2}]$ grep -r 'Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/Developer/Library/Frameworks' Baz.xcodeproj/
Binary file Baz.xcodeproj//project.xcworkspace/xcuserdata/bar.xcuserdatad/UserInterfaceState.xcuserstate matches
[foo@bar baz{Swift2}]$
像往常一样,我对项目和模拟器(手表、iPhone)都进行了“清理”。
我检查了目录路径,发现确实没有这样的路径;路径组件一直存在到“iPhoneOS9.0.sdk”组件。也就是说,这条路径存在:'/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk',但该位置没有'Developer' 子目录。但是,下面有一个框架目录,但它位于 'iPhoneOS9.0.sdk/System/Library/Frameworks/' 而不是 'iPhoneOS9.0.sdk/Developer/Library/Frameworks'。
【问题讨论】:
-
这个应用程序本身是否包含任何框架目标?
-
唯一的目标是
和 测试,这是一个非常简单的单视图应用程序的默认设置(更多的是教程/实验而不是应用程序)。 -
尝试删除测试。 - 我的意思是测试target.
-
谢谢,马特,这很有效。你也遇到过这种情况吗?如果您提出答案,我会接受 ;-) 您知道为什么会发生这种情况吗?
-
UserInterfaceState.xcuserstate 文件中也不再有二进制匹配项。