由于苹果链接器错误,应用程序重命名后单元测试无法运行
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。如果您也遇到此问题,请随意欺骗。
【讨论】:
以上是关于由于苹果链接器错误,应用程序重命名后单元测试无法运行的主要内容,如果未能解决你的问题,请参考以下文章
苹果Mac强大的批量重命名工具:A Better Finder Rename