Unit tests failing to run after app rename due to

2020-02-14 03:03发布

问题:

I recently changed the name of my app and now my unit tests are not running, I am getting an Apple linker error.

Any idea how to fix this? If I expand my 'Products' folder in Xcode there are 2 files:

MyApp.app MyAppTests.octest [which appears red]

Update: Deleted all the build folders (derived data) still doesn't work!

Ld /Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator/companyDesignerTests.octest/companyDesignerTests normal 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: in /Users/my/Library/Developer/Xcode/DerivedData/srStudio-bdkguonwasdiazelguppliitkdox/Build/Products/Debug-iphonesimulator/s & r.app, can't map file, errno=22 for architecture i386 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1

回答1:

I don't know if this would help you solve your problem but you could try going to the organizer and under Projects tab hit remove for all Derived Data



回答2:

The following solution works for me:

-> Select your project

-> select your projectTest file from TARGET

-> In Host Application, select your project from dropdown only if it show custom



回答3:

In my case, I had the similar issue after performing app rename. I'm running Xcode 8.x and what I did was:

1) Project -> Targets -> xxTests -> General -> Enable 'Allow testing Host Application APIs'.

2) Perform clean & rebuild

3) In [Simulator], reset it: Simulator -> Reset Content and Settings...



回答4:

I faced similar issues when renaming my app. You should try with a fresh clean build. Make sure that you remove all build folders (performing a clean in XCode sometimes is not enough).



回答5:

For the current version of Xcode, you just need to click on the project, then change the name in the file inspector. Or you can right-click on project, and there will be a "Renaming a project" in the help dialog.



回答6:

I've worked out a resolution to this issue which I've shared here: https://stackoverflow.com/a/30508062/233602

I have filed this as http://www.openradar.me/21139630 and rdar://21139630 with Apple. Feel free to dupe if you also experience this issue.