-
Notifications
You must be signed in to change notification settings - Fork 124
Modify SDK build Cocoapods inclusion to use frameworks instead of libraries #905
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
Conversation
These don't specify a Pods/Header directory, so the header has to come directly from the Sources/Public directory.
✅ Integration test succeeded!Requested by @jonsimantov on commit 6c2f067 |
@sunmou99 The build_testapps.py script seems to be messing something up about adding the frameworks to the tvOS builds now, with this Cocoapods change. I tried looking into what might be happening but I haven't been able to figure it out. Can you try to reproduce the issue on this branch? |
tvOS platform shouldn't contain We could change the Podfile and remove the unwanted |
After some more research, it seems that this is a known issue with command-line xcodebuild using the new build system. When you have multiple targets with different platforms, the command-line build seems to mistakenly include the framework dependencies from Cocoapods into all of the targets. Unfortunately, we can't use the legacy build system as it doesn't support .xcframeworks. So it seems like the best workaround is to have platform-specific Podfiles (edited on the fly by the script). I am testing one more possible fix, setting the linkage to static - this worked one time I tested it, though it still printed some warnings. |
Everything looks good except an unrelated Firestore error, gonna go ahead and merge this. |
Description
Upcoming release 9.0.0 will require that Cocoapods be included as frameworks, not as a libraries. This change modifies the existing CMake build to be able to build via frameworks. This requires adding a few different locations to the include paths, as the paths are different when using frameworks (and in a few cases e.g. GTMSesionFetcher, headers are no longer in the public location).
This PR also modifies the integration tests to add "use_frameworks! :linkage => :static" to each one; the static linkage is required for tvOS, otherwise a bug in xcodebuild causes the tvOS build to accidentally import the iOS frameworks. If the xcodebuild command-line ever fixes this issue, we can remove the static linkage workaround.
Testing
Integration test and cpp packaging runs will both be verified.
Type of Change
Place an
x
the applicable box:Notes
Release Notes
section ofrelease_build_files/readme.md
.