This shifts the actual symbol & color asset catalog generation and compilation into the brave-core ninja build system and bundles them in a dynamic framework which will allow asset sharing between targets saving some disk space.
This change will improve incremental build times of anything that would have imported the `DesignSystem` target by 30s+ per build as SPM plugins were executing incorrectly every build (with no way to seemingly fix it for asset catalogs) thus causing asset catalog recompilations each time.
* update build script, move core package directory
* Use xcode scheme pre-actions
* Make args file with version & api keys, remove unused configs
* Update dev to nightly naming, cleanup, fix missed test
* Remove brave-core-ios from package, update bootstrap
* dont remove frameworks early
* Move brave-ios npm packages into brave-core, cleanup
* Disable swift-format for now, disable clang-format on ThirdParty dir
* Build frameworks to src/out directory instead of inside brave-ios folder
* Move ios third party deps to brave/third_party/ios_deps directory
* Fix bootstrap copy with new directories, more cleanup
* Add iOS unit tests to `npm run test` command
* Remove swift formatting from presubmit
* Use symlink to output directory, move xcframework creation to npm cmd
* Add license checker special cases for iOS deps
* Presubmit fixes
* Replace `build_in_core` shell script with `scheme_preaction` python
- Adds `brave_ios_marketing_version` config and adds pre-actions for all main schemes
- Re-add Nightly (Dev) scheme
* Cleanup bootstrap, complete dev to nightly rename, remove Local xcconfigs
Plus format/presubmit fixes
* Remove SPM Package.resolved and ignore it
We won't be using the non-Xcode project based build system
* Update presubmit config, Remove macOS wireguard framework prebuild
* Add license info for moved brave-ios npm packages
* Exclude third_party/ios_deps from cpplint
* Add DEPS file to Guardian dep
* Rename brave_version_patch to illustrate its for iOS only
* Use correct GN configuration based on Xcode configuration
* Allow ios bootstrap script to be run from any directory. Update README
* Make fastlane channel builds also release to testers
Also fixes an issue where Xcode injected environment variables were available during GN builds which would cause build failures in Release configurations
* Remove clean git status check from fastlane
* Update fastlane script to always run bootstrap
* Fix bootstrap script copying placeholders to the wrong directory
* Disable xcpretty in fastlane scripts
* Fix debug scheme entitlements now that it shares nightly bundle id
* Update simulator target in fastlane unit test lane
* Disable xcpretty on unit tests and fixup test build
* Add provisioning profiles for nightly builds
* Expand relative directories in bootstrap
* Add explicit provisioning for nightly
* Fix tests & export junit reports
* Update nightly provisioning profile names
* Remove all skipped tests
* Fix failing unit tests
* Add explicit provisioning profiles for beta & release
* Remove app center fastlane plugin and ignore fastlane test_output in git
* Cleanup Xcode project config
* Fix invalid code signing identities on individual targets
* Skip flaky wallet tests, re-add automatic signing for debug builds
* Fix flaky CoreData tests by guaranteeing view context merge
* Update Jenkinsfile
* Move Xcode derived data directory to src/out for CI builds
* Remove 'No Changes' CoreData test
* Fixed missed Xcode derived data directory setting for iPad test build
* Fix iPad test plan
* Separate testflight build & upload into multiple fastlane runs
* Add version string to MaterialComponents during preaction
* Add ability to pass in PUBLIC CI arg into fastlane upload lane
* Cleanup config & presubmit rules
* Add explicit licenses/README.chromium's for third party iOS deps
* Presubmit cleanup/fixes
* Change Xcode preactions to run on xcframeworks instead of GN outputs
This avoids rebuilds that are due to BraveCore.framework and MaterialComponents.framework folders being touched in the out directory when we cleanup chromium assets and fix the MaterialComponents Info.plist
* Improve debugging when `strip_absolute_paths_from_debug_symbols` is true
- The bootstrap script now generates an LLDBInit that is used for Debug schemes. This file contains an lldb target.source-map to allow lldb to resolve breakpoints
- SPM & Xcode now build with the `-debug-prefix-map` swift flag so that all iOS files built out of GN also have relative debug paths
- Replace compilation flags being defined with OTHER_SWIFT_FLAGS to use SWIFT_ACTIVE_COMPILATION_CONDITIONS instead
* Remove SPM reload during preaction and use .env for Package.swift
This removes a race that could happen when reloading the package during the build
* Add Action Extension provisioning profiles and fix its xcode build settings
* Move xcframework creation command into separate file
* Fixup nvm/brew npm PATHs in Xcode pre-action script
* Move iOS bootstrap into gclient runhook, rename current_link
* Bootstrap script improvements based on feedback
* Rebase master/fix bootstrap import
* Bootstrap script improvements based on feedback pt2
* Revert Jenkinsfile change
* Move CheckNoJsInIos and CheckNoDeprecatedCss into permanent ignores
* Rebase master & fix wallet mock asset ratio service
---------
Co-authored-by: Mihai PLESA <mplesa@brave.com>