-
Notifications
You must be signed in to change notification settings - Fork 238
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Xcode 9 support #339
Xcode 9 support #339
Conversation
The tests do not yet pass when run against Xcode 9, since they're expecting the Xcode 8 locations.
…de 9. The ProfileData directory is now next to OBJROOT (Intermediates.noindex) rather than in a subdirectory of OBJROOT.
@ksuther, works for me for both Xcode 9 GM and 8.3.2. |
It works like a charm also here using Xcode 9 GM |
@ksuther, Curious what the plan is for xcode 9 updates such as this one? Thanks in advance! |
Hoping to do it today. Sorry for the wait! |
No problem @ksuther. Thank you for the reply. This is Xcode9, with iPhone 7Plus running iOS 10.3.3 |
What do you get if you run slather with |
--verbose does not print out anything more than I'm already getting printed. Digging a little deeper. |
looks like build_directory is fine. it's the profdata_coverage_dir that's not getting resolved. I added another case. This resolved dir problem.
With that above it finds the Coverage.profdata file. The next problem is that no product binary is being found. Any ideas? should this be finding our .framework file? No .framework file is in the above mentioned location. |
What is your xcodebuild command? The root problem may be that slather isn't able to automatically detect your directories because it is using xcodebuild -showBuildSettings to determine the path of directories, but if you're overriding those at build time then they won't match. |
ok, I'm trying to get the build it print the entire string. I'll advise when I know for certain. Thank you again for the insight. |
I got the xcodebuild command.
Is passing in derivedDataPath the problem? We have been doing this for a few years now and using slather with no issue, not till we moved to Xcode 9. For convenience, below is my slather command (slightly edited to get rid of a bunch of --ignore paths.
|
What does your ProfileData/UUID/Coverage.profdata directory structure look like? I'm trying something similar to you and it works fine. The check for the Xcode version and
|
Coverage.profdata itself is a file, but if you're referring to their parent directory, this is what the UUID dir contains: |
I meant the directory structure leading up to Coverage.profdata. Did you verify that |
Yes! thanks for doing this @ksuther |
puts Slather.xcode_version[0] pwd && ls -la ProfileData contains only the uuid which in turn contains the Coverage.profdata and profraw file. Thanks! |
@ksuther , I realize this is merged. And I'm still trying to understand why it's still broke for us in particular. I have a question in regards to the error case. However, is the error that is raised containing the correct path? it's currently printing a different directory path than the search_dir.
Thanks, |
That error probably needs to be updated. It's outside of the branch where search_dir is defined, so that probably needs to be lifted out of the conditional. search_dir is just profdata_coverage_dir with ../.. appended, so it should be easy to figure out where it's looking. Are you able to reproduce the problem in a sample project with the same xcodebuild command? If so, maybe I can debug things that way. Otherwise it's hard to give more specific suggestions other than tracing out what |
Additional Xcode 9 support (thank you to #321 and #338).
Most of the tests pass when run against Xcode 9, but 4 tests still fail due to expecting Xcode 8's directory layout. These tests can be updated once Travis is switched over to Xcode 9.