-
Notifications
You must be signed in to change notification settings - Fork 129
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
Converge all three platforms' projects #633
Conversation
…l unit tests - Removed .cpp source file specifier from podspec - Unshared schemes - Remove tvOS and OSX projects - Renamed iOS project to Project
8f9f987
to
b2784f9
Compare
…l unit tests - Removed .cpp source file specifier from podspec - Unshared schemes - Remove tvOS and OSX projects - Renamed iOS project to Project
b2784f9
to
7a4911e
Compare
…l unit tests - Removed .cpp source file specifier from podspec - Unshared schemes - Remove tvOS and OSX projects - Renamed iOS project to Project
…cocoa into v6-merge-xcode-projects
…cocoa into v6-merge-xcode-projects # Conflicts: # Project/Bugsnag copy-Info.plist
21d5763
to
25ad665
Compare
# Conflicts: # OSX/Bugsnag.xcodeproj/project.pbxproj # tvOS/Bugsnag.xcodeproj/project.pbxproj
654ae1c
to
a760bea
Compare
a760bea
to
38d600b
Compare
9af01a5
to
d4683ae
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to finally address this 🎉
As this doesn't lend itself well to inline comments, I've left queries here:
- Frameworks and libraries are different between targets, for tvOS in particular - I assume this is expected behaviour
- Deployment targets do not match supported versions
- Why are the C/C++ language dialect build settings different for iOS/macOS/tvOS/BugsnagStatic?
- macOS target has an empty Run Script in its build phases
- Generally speaking, it'd be nice to set default values for Build Settings in the Bugsnag Project, so that each target inherits the value and doesn't need to override anything.
- The test targets each have a different number of test files in the Compile Sources
- The copy files phase for BugsnagStatic does not copy the same number of headers as the iOS target has
- Would suggest moving a few more files into groups for logical organisation. E.g. BugsnagApiClient could go in the Delivery group etc
There are also a couple of follow on tasks/questions:
- Review Apple Clang/Static analysis flags, there's probably at least a few new ones that are worth enabling
- When switching between targets and building, I ocassionally encountered an error with Derived Data where it failed to create a directory to put the headers in. Cleaning the build folder tended to work but it seems like this would be worth keeping an eye on
- Are MessageUi + UIKit required for the BugsnagStatic target? They're not present in the regular iOS target
And finally, there's a list of things that could use some manual testing to verify they're working if this hasn't already been done:
- Upgrading from previous installation
- Carthage
- React Native
- Archiving iOS app and installing on real device
Thanks for the comments; a good list to work through. Let me address some of these in turn, Updating this comment as I go.
There are also a couple of follow on tasks/questions:
And finally, there's a list of things that could use some manual testing to verify they're working if this hasn't already been done:
|
# Conflicts: # Makefile
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM pending CI.
Goal
The Bugsnag library has, for some time, been supplied as three separate projects due to a historic issue with multi-platform Carthage support. The Carthage issue has been resolved and there is no reason that the project structure cannot be simplified back to one XCode project that supports all three platforms (iOS, macOS, tvOS)
Design
iOS was used as the base project. Additional targets were created for tvOS and macOS, along with test targets. Side by side comparison with existing tvOS and macOS (OSX) projects were made while populating the new targets. Comparison with other established cross-platform open source frameworks also guided work.
iOS
was renamed toProject
. Rebased onto v6 during development to simplify final merging.Changeset
.cpp
file specifier removed from podspec. This supplants this PR.Tests
Notes