30 Commits

Author SHA1 Message Date
Arkadiusz Fal
90a0c6fd1a Fix doubled fastlane/ prefix in notarize lane shell paths
fastlane's sh runs from the fastlane/ directory, so the stapler/ditto/
hdiutil commands resolved fastlane/builds/... to fastlane/fastlane/
builds/... and failed after successful notarization.
2026-07-18 18:10:48 +02:00
Arkadiusz Fal
f3f45fdfdc Fix mac notarized build archiving wrong platform
build_mac_app in the build_and_notarize lane was missing the sdk and
destination overrides needed for the multiplatform scheme, so gym
archived for tvOS and failed on provisioning profiles. Mirror the
working mac beta lane.
2026-07-18 18:00:57 +02:00
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