xcode 6 pch.file not found

2019-01-16 04:47发布

问题:

I load my project from xcode 5 to xcode 6 and see error myProject-prefix.pch is not found in myProjectTests, I add this file and see new error

Ld /Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Products/Debug-iphonesimulator/Мобильный\ Extreme\ FitnessTests.xctest/Мобильный\ Extreme\ FitnessTests normal x86_64
cd /Users/willrock/Desktop/ExtremeFitness
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk -L/Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Products/Debug-iphonesimulator -F/Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Products/Debug-iphonesimulator -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk/Developer/Library/Frameworks -filelist /Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Intermediates/Мобильный\ Extreme\ Fitness.build/Debug-iphonesimulator/Мобильный\ Extreme\ FitnessTests.build/Objects-normal/x86_64/Мобильный\ Extreme\ FitnessTests.LinkFileList -bundle_loader /Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Products/Debug-iphonesimulator/extreme_fitness.app/extreme_fitness -Xlinker -objc_abi_version -Xlinker 2 -framework XCTest -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=7.1 -framework XCTest -framework UIKit -framework Foundation -Xlinker -dependency_info -Xlinker /Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Intermediates/Мобильный\ Extreme\ Fitness.build/Debug-iphonesimulator/Мобильный\ Extreme\ FitnessTests.build/Objects-normal/x86_64/Мобильный\ Extreme\ FitnessTests_dependency_info.dat -o /Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Products/Debug-iphonesimulator/Мобильный\ Extreme\ FitnessTests.xctest/Мобильный\ Extreme\ FitnessTests

ld: file not found: /Users/willrock/Library/Developer/Xcode/DerivedData/Мобильный_Extreme_Fitness-cdfxpafcwvsczkfjvlwznradvmhm/Build/Products/Debug-iphonesimulator/extreme_fitness.app/extreme_fitness clang: error: linker command failed with exit code 1 (use -v to see invocation)

if i load project see in xctest

clang: error: no such file or directory: '/Users/willrock/Desktop/ExtremeFitness/extreme_fitness/extreme_fitness-Prefix.pch' clang: error: no input files Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

but in xcode 5 is work fine

回答1:

  1. Make new file: ⌘cmd+N
  2. iOS/Mac > Other > PCH File > YourProject-Prefix.pch.
  3. Make sure you display "All" and not "Basic". (Blue buttons)
  4. Project > Build Settings > Search: "Prefix Header".
  5. Under "Apple LLVM 7.0" you will get the Prefix Header key.
  6. Type file directory. e.g: "$(SRCROOT)/$(PROJECT_NAME)/ProjectName-Prefix.pch".
  7. Clean project: ⌘cmd+⇧shift+K
  8. Build project: ⌘cmd+B



回答2:

i solved it - in targets delete xctest target and it compiled



回答3:

Try this with Xcode 6. You need to manually create the PCH File.

File -> New -> File -> iOS -> C and C++ -> PCH File.

Add new PCH file to the project - New file > Other > PCH file

At the project 'Build Settings' option - set the value of 'Prefix Header' to your PCH file name, with the project name as prefix - i.e. for project named 'TestProject' and PCH file named 'MyPrefixHeaderFile', add the value 'TestProject/MyPrefixHeaderFile.pch' to the plist.



回答4:

There are a lot of reasons for this issue and I had my own hits.I had to do two steps for my project to run.May be it can be helpful for others.

  1. I deleted the entry in the Prefix header of Build Settings.

Path-> Target> Build Settings > Prefix Header.

  1. Deleted the Your Project Tests file in the Targets.

    screen shot for the second point.

Reference: http://www.buzztouch.com/forum/thread.php?tid=F42D8239A330C321132944A&currentPage=3



回答5:

Generate a new pch file. Name the file as Demo-Prefix.Pch Go to targets - Build Settings



回答6:

Do as follows, changing [Precompile Prefix Header] with [no] and [Prefix Header] with empty field.

And I rebuild the project, it passes, and runs!

[Project]
-[Basic]
-[Apple LLVM6.1-Language]
--[Precompile Prefix Header]-[no]
--[Prefix Header]--[]


回答7:

Here is a description what you should do

  1. Click on the first folder under the blue page with the project name. The folder with also have the project name next to it.

  2. File > New File > iOS > Other

  3. Click on PCH File

  4. Click Next

  5. Save As: PrefixHeader

  6. Click the first checkbox under Targets ONLY; if others are checked, uncheck them

  7. Click Create

  8. If the Prefix Header" file ended up in a different folder, such as the Supporting Files folder, move it up to the top folder you clicked on in step 1

  9. Click on the blue page at the top of the left sidebar with the project name next tot it. This is just above the folder you clicked on in step 1

  10. Click on the Build Settings tab

  11. In the search bar, type in, Prefix Header and press the Return/Enter key

  12. Look for Apple LLVM 6.0 or 7.0 - Language. 6.0 refers to Xcode 6 and 7.0 refers to Xcode 7. This makes no difference.

  13. Make sure Increase Sharing of Precompiled Headers is set to No and that Precompile Prefix Header is set to No

  14. Find the Prefix Header line just under the Precompile Prefix Header Line. Move the cursor over about 5 inches, but stay on the same line. Double-Click. A box will open.

  15. Type in the name of your project (this is stated next to the folder you clicked on in step 1)

    Example) Prereq for Overdue Assignment It is VERY IMPORTANT that you type in capitals where needed such as "P" in "Prereq." It is case sensitive. Now, put in forward slash (/). Then type in the name of the file you created in steps 2-7 (Again, this is Case Sensitive and you must put spaces where needed). I recommend that you leave the file as PrefixHeader (no spaces). After the filename, such as PrefixHeader, type in .pch ALL lower case.

  16. The final result should look something like this:

    Prereq for Overdue Assignment/PrefixHeader.pch

  17. Now, click on the Product menu (6 menus over from the file menu you clicked on in step 2). Then click on Clean

    You can bypass this step by holding command, shift, and K at the same time. Once you get the message, Clean Succeeded, move on to step 18.

  18. Click on the Product menu and go down to Build. Click on Build.

    You can bypass this step by holding command and B at the same time. You should get Build Completed.

Thats it!



回答8:

  • select your framework in the file navigator
  • open the utilities pane (Xcode -> View -> Utilities -> Show File Inspector)
  • enable target membership of your framework for all targets.


回答9:

Just change your scheme name to what ever you want.Clear the project then compile it. Its working for me .