由于苹果链接器错误,应用程序重命名后单元测试无法运行

Posted

技术标签:

【中文标题】由于苹果链接器错误,应用程序重命名后单元测试无法运行【英文标题】:Unit tests failing to run after app rename due to apple linker error 【发布时间】:2012-03-14 10:58:21 【问题描述】:

我最近更改了我的应用程序的名称,现在我的单元测试没有运行,我收到 Apple 链接器错误。

知道如何解决这个问题吗?如果我在 Xcode 中展开我的“产品”文件夹,则有 2 个文件:

MyApp.app MyAppTests.octest [显示为红色]

更新:删除了所有构建文件夹(派生数据)仍然不起作用!

Ld /Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator/companyDesignerTests.octest/companyDesignerTests 普通 i386 cd /Users/my/Documents/Working/companyDesigner setenv MACOSX_DEPLOYMENT_TARGET 10.6 setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang -arch i386 -bundle -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk -L/Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator -F/Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator -F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/Library/Frameworks -F/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/Developer/Library/Frameworks -filelist /Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Intermediates/srStudio.build/Debug-iphonesimulator/companyDesignerTests.build/Objects-normal/i386/companyDesignerTests.LinkFileList -mmacosx-version-min=10.6 -bundle_loader "/Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator/s & r.app" -Xlinker -objc_abi_version -Xlinker 2 -lxml2 -Xlinker -no_implicit_dylibs -D__IPHONE_OS_VERSION_MIN_REQUIRED=50000 -framework CoreData -framework CoreGraphics -framework Foundation -framework UIKit -framework SenTestingKit -o /Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator/companyDesignerTests。 octest/companyDesignerTests

ld:在 /Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator/s & r.app, 无法映射文件, errno=22 for architecture i386 命令 /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang 退出代码 1 失败

【问题讨论】:

【参考方案1】:

以下解决方案适用于我:

-> 选择你的项目

-> 从 TARGETS 中选择你的 projectTest 文件

-> 在主机应用程序中,如果显示自定义项目,请选择您的项目

【讨论】:

这对我有用。但是我需要在您的应用程序的测试目标中更改变量 TEST_HOST(在构建设置中)。有旧的应用程序名称 完美,这也为我做了。谢谢!【参考方案2】:

我不知道这是否能帮助您解决问题,但您可以尝试转到 organizer 并在 Projects 标签下点击 remove 对于所有派生数据

【讨论】:

【参考方案3】:

在我的情况下,我在执行应用重命名后遇到了类似的问题。我正在运行 Xcode 8.x,我所做的是:

1) 项目 -> 目标 -> xxTests -> 常规 -> 启用“允许测试主机应用程序 API”。

2) 执行清理和重建

3) 在[Simulator]中,重置它:Simulator -> Reset Content and Settings...

【讨论】:

【参考方案4】:

我在重命名我的应用时遇到了类似的问题。您应该尝试使用全新的干净构建。确保删除所有构建文件夹(有时在 XCode 中执行清理是不够的)。

【讨论】:

【参考方案5】:

对于当前版本的 Xcode,您只需点击项目,然后在文件检查器中更改名称。或者你可以在项目上右击,在帮助对话框中会出现一个“重命名项目”。

【讨论】:

【参考方案6】:

我已经解决了这个问题,我在这里分享了:https://***.com/a/30508062/233602

我已将其作为 http://www.openradar.me/21139630 和 rdar://21139630 提交给 Apple。如果您也遇到此问题,请随意欺骗。

【讨论】:

以上是关于由于苹果链接器错误,应用程序重命名后单元测试无法运行的主要内容,如果未能解决你的问题,请参考以下文章

谷歌单元测试框架的链接器错误

安装好ASP和IIS后,测试网页为何限制浏览?

苹果Mac强大的批量重命名工具:A Better Finder Rename

在 Xcode 中运行 iOS 单元测试时引用 _main 的链接器错误

Xcode 单元测试 - 仅为设备构建时出现链接错误

Mac 重新安装系统无法抹掉磁盘?