-
Notifications
You must be signed in to change notification settings - Fork 9
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
Add Mac App Store target #927
Conversation
…with macOS 12 deployment target
…abled private API
…solve problems with tests targets
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! Kudos for finding a solution to all problems that appeared. 👏
As a follow up, it would be fine to have option to clean data for App Store build with clean-app.sh. But that is a small detail you don't need to worry about now.
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.
Looks good as far as I can tell! Followed through all of the testing steps, and generally just smoke tested everything. Great work!
@@ -38,6 +38,9 @@ extension WKWebView: WKWebView_macOS_11_3 { | |||
extension WKWebView { | |||
|
|||
func startDownload(_ request: URLRequest, completionHandler: @escaping (WebKitDownload) -> Void) { | |||
#if APPSTORE | |||
startDownload(using: request, completionHandler: completionHandler) | |||
#else | |||
if #available(macOS 11.3, *) { | |||
(self as WKWebView_macOS_11_3).startDownload(using: request, completionHandler: completionHandler) |
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.
the WKWebView_macOS_11_3 protocol can be safely removed as the API availability bug has been fixed in Xcode
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.
Thanks for pointing that out @mallexxx! I’ve removed this protocol in this commit. I’ve tested it on both targets, but I’d appreciate if you could have a look just to double check. Thanks a lot :)
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.
yep, looks good 👍
…s: binary and metadata upload
…shown in CI build logs
…tore that has been updated)
# By Dominik Kapusta (4) and others # Via GitHub * develop: Blockable JS Alerts inside tabs (#904) Fix add bookmark / folder modal in fullscreen (#930) Add Mac App Store target (#927) Pull request review checklist added to the pull request template (#935) Version Bump to 0.31.7 Update embedded files Update BSK with autofill 6.1.2 (#942) Migrate to targeted Swift Concurrency checking (#937) Add bundler configuration to limit Gemfile.lock noise (#939) update openssl depedency (#918) Remove tab content when showing TabContent.none (such as for new tabs opened from navigation links) (#938) Update GRDB to 2.0.0 (upstream 6.6.0, SQLCipher 4.5.3) (#933) Sparkle 2 (#934) Bump Submodules/privacy-reference-tests from `de75d51` to `4fdbbb6` (#932) # Conflicts: # DuckDuckGo.xcodeproj/project.pbxproj
Task/Issue URL: https://app.asana.com/0/72649045549333/1203407505908963/f
Description:
and Unit Tests App Store and Integration Tests App Store for tests.
and non-App Store targets in sync.
.review
and.debug
suffixes)in the App Store build. This is the only user-facing change compared to the DMG distribution.
directories are computed relative to home directory for the sandboxed target. Hence existence of
URL.nonSandboxLibraryDirectoryURL
andURL.nonSandboxApplicationSupportDirectoryURL
.Remaining usage was converted to utilize
performSelector
so that it’s resolved in runtime.APPSTORE
compile time flag and this one is used to conditionally exclude somecode, especially references to private API calls. It turns out that
if #available(macOS 12.0, *)
is not enoughto get rid of private API symbols landing inside the resulting binary.
just notarized sandbox builds).
warnings after bumping deployment target to 12.3 for the App Store target.
Steps to test this PR:
Setting up development environment:
bundle install
(if needed).bundle exec fastlane sync_signing username:<your_ddg_apple_id>
to set up App Store certificates and provisioning profiles. You will be asked for the fastlane match password which will be stored in the keychain.Testing the app
Other
Testing checklist:
—
Internal references:
Software Engineering Expectations
Technical Design Template
When ready for review, remember to post the PR in MM