Commit Graph

28 Commits

Author SHA1 Message Date
Arkadiusz Fal
a2a4691957 Integrate Sparkle auto-updates for macOS Developer ID builds
New Release-DeveloperID configuration gates Sparkle behind a SPARKLE
compile flag so the App Store Release build stays Sparkle-free. Adds
SPUStandardUpdaterController wrapper, Check for Updates menu command,
Advanced Settings section with beta channel toggle, and a Ruby script
plus GitHub Actions job that signs each release and publishes the
appcast to gh-pages for consumption by Sparkle and Homebrew cask.
2026-04-23 04:51:00 +02:00
Arkadiusz Fal
cedefb5c97 Fix fastlane mac beta build for multiplatform scheme
Without sdk:"macosx", gym treats the multiplatform scheme as iOS and
fails with "IPA invalid". Without an explicit destination xcodebuild
picked tvOS. The output_name also needed the .app suffix removed since
gym appends .pkg for macOS app-store exports.
2026-04-19 13:33:15 +02:00
Arkadiusz Fal
6acfff6451 Update fastlane readme 2026-04-18 20:38:02 +02:00
Arkadiusz Fal
fb14ed8ae9 Wire YatteeTopShelf into tvOS release lane
Fetch a match profile for the new stream.yattee.app.TopShelf bundle,
switch the extension target to manual signing, and map its profile in
build_app export_options so the tvOS archive signs both the main app
and the Top Shelf extension.
2026-04-18 20:38:02 +02:00
Arkadiusz Fal
bf1ed95281 Set code_sign_identity in update_code_signing_settings
Without explicit identity, xcodebuild defaults to "iOS Development"
which doesn't exist on CI. Set "Apple Distribution" for App Store
builds and "Developer ID Application" for notarized builds.
2026-04-18 20:38:00 +02:00
Arkadiusz Fal
03bf8d2654 Use fastlane update_code_signing_settings for manual signing
Replaced sed-based CODE_SIGN_STYLE override with fastlane's
update_code_signing_settings which also sets PROVISIONING_PROFILE_SPECIFIER.
This fixes the YatteeShareExtension build failure where it couldn't
find a provisioning profile under manual signing.
2026-04-18 20:38:00 +02:00
Arkadiusz Fal
0529c9105c Fix build number file path and remove update_fastlane in CI
- Write latest_build_number.txt to repo root using explicit path
  (fastlane runs from fastlane/ subdir, so relative path was wrong)
- Remove update_fastlane from before_all to avoid CI instability
2026-04-18 20:38:00 +02:00
Arkadiusz Fal
bb1e7ddd68 Auto-increment build number in release workflow
Query App Store Connect for the latest TestFlight build number across
all platforms (iOS, tvOS, macOS) and auto-increment it, eliminating
the need for the separate bump-build workflow.
2026-04-18 20:38:00 +02:00
Arkadiusz Fal
1ac4e089fc Add Fastlane config and update release workflow for v2
Single unified "Yattee" scheme replaces per-platform schemes.
Release workflow now has toggleable platform inputs instead of
matrix strategy. Standalone mac notarized workflow removed in
favor of the build_mac_notarized toggle. Share extension bundle
ID updated from Open-in-Yattee to ShareExtension.
2026-04-18 20:37:35 +02:00
Arkadiusz Fal
100df744d9 Yattee v2 rewrite 2026-04-18 20:37:24 +02:00
Arkadiusz Fal
11f0dff4e2 Pass is_key_content_base64: true to app_store_connect_api_key
The DEVELOPER_KEY_CONTENT secret is stored base64-encoded, so fastlane
needs to be told to decode it before parsing. Matches the approach on
rewrite/v2. Removes the openssl-shell-out workaround from the previous
commits, which was solving the wrong problem.
2026-04-18 19:10:04 +02:00
Arkadiusz Fal
a26044cc04 Un-escape \n in DEVELOPER_KEY_CONTENT before openssl conversion
GitHub secrets store multi-line PEMs as a single line with literal "\n"
sequences. Fastlane's app_store_connect_api_key action un-escapes them
via gsub before use; the helper must do the same before writing the
temp file, otherwise openssl sees garbage.
2026-04-18 19:05:44 +02:00
Arkadiusz Fal
c978ec6b89 Work around invalid curve name on CI runners
The hosted macOS runner's OpenSSL rejects Apple's PKCS#8 .p8 key via
OpenSSL::PKey::EC.new with "invalid curve name". Shell out to system
openssl to convert the key to SEC1/traditional PEM before handing it
to fastlane's app_store_connect_api_key action.

Ref: fastlane/fastlane#20593
2026-04-18 19:03:27 +02:00
Arkadiusz Fal
7bfb212e6d Restore build_and_notarize lane to original version
- Reverts custom PKG creation from archive
- Uses build_mac_app with export_method developer-id
- Fixes directory not found error in GitHub Actions
2025-11-10 13:00:14 +01:00
Arkadiusz Fal
bf40f527ea Add macOS framework conversion for Developer ID distribution
This commit implements a workaround for MPVKit shipping frameworks as
shallow bundles, which are incompatible with macOS Developer ID
distribution requirements.

Changes:

1. Raised macOS deployment target to 14.0
   - Matches MPVKit's minimum requirement
   - Previous: 11.0
   - New: 14.0

2. Added Run Script phase to convert frameworks
   - Converts MPVKit frameworks from shallow to versioned bundles
   - Required for macOS Developer ID code signing
   - Runs after framework embedding
   - Converts all 28 MPVKit frameworks during build

3. Modified fastlane build process
   - Build and archive without export
   - Create PKG directly from archive
   - Avoids extended attribute issues from export process

4. Pinned MPVKit to specific commit
   - Commit: e7e914a70e943f0d4f050c9ede793af8f6e74ad7
   - Ensures consistent framework structure

Known Issues:
- Some frameworks (Libplacebo, Libluajit) have signature issues after
  conversion that still prevent successful notarization
- This is a workaround; the root issue should be fixed in MPVKit by
  providing macOS-compatible versioned bundle frameworks

See minimal reproduction project at:
/tmp/MPVKit-Notarization-Issue/MPVKitNotarizationTest/

Related: MPVKit should provide macOS-specific XCFrameworks with
versioned bundles for proper Developer ID distribution support.

🤖 Generated with Claude Code (https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 12:32:32 +01:00
Arkadiusz Fal
469e9a4eb9 Enable notarization error logging
Add print_log: true to notarize action to display detailed error
messages when notarization fails in GitHub Actions.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-09 19:01:25 +01:00
Arkadiusz Fal
101fee9a37 Revert "Enable external distribution"
This reverts commit 51e5aeec13.
2024-01-13 10:12:14 +01:00
Arkadiusz Fal
51e5aeec13 Enable external distribution 2024-01-09 17:02:55 +01:00
Arkadiusz Fal
4a83cc6127 Disable automatic external testers distribution 2023-09-23 22:42:08 +02:00
Arkadiusz Fal
2844838485 Update workflows 2023-02-26 18:54:12 +01:00
Arkadiusz Fal
0c7af0351b Add bump build action 2023-02-25 14:51:50 +01:00
Arkadiusz Fal
de153ab9ac Add workflow for building and TestFlight 2023-02-24 18:17:44 +01:00
Arkadiusz Fal
ddcc134d75 Update fastlane config 2023-02-24 18:17:44 +01:00
Arkadiusz Fal
c409673ff1 Update fastlane 2022-12-04 13:32:27 +01:00
Arkadiusz Fal
30889619fd Use altool to upload builds 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
7607cf24b2 Fix getting build number in Fastlane 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
3526559859 Remove build increment from Fastlane 2022-10-27 18:03:57 +02:00
Arkadiusz Fal
cd32bae24b Add Fastlane config 2022-08-15 16:27:38 +02:00