mirror of
https://github.com/yattee/yattee.git
synced 2025-11-13 05:38:45 +00:00
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>
This commit is contained in:
@@ -254,20 +254,28 @@ platform :mac do
|
||||
api_key: api_key
|
||||
)
|
||||
|
||||
build_mac_app(
|
||||
# Build and archive, but skip export to avoid extended attribute issues
|
||||
gym(
|
||||
scheme: "#{APP_NAME} (macOS)",
|
||||
output_directory: "fastlane/builds/#{version}-#{build}/macOS",
|
||||
output_name: "#{APP_NAME}",
|
||||
export_method: "developer-id",
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"#{DEVELOPER_APP_IDENTIFIER}" => "match Direct #{DEVELOPER_APP_IDENTIFIER} macos"
|
||||
}
|
||||
}
|
||||
skip_package_pkg: true,
|
||||
skip_archive: false
|
||||
)
|
||||
|
||||
# Get the app from the archive's InstallationBuildProductsLocation
|
||||
archive_path = lane_context[SharedValues::XCODEBUILD_ARCHIVE]
|
||||
app_path = "#{archive_path}/Products/Applications/#{APP_NAME}.app"
|
||||
|
||||
UI.message("Archive path: #{archive_path}")
|
||||
UI.message("App path: #{app_path}")
|
||||
|
||||
# Create PKG directly from the archived app (before any export processing)
|
||||
pkg_path = File.expand_path("builds/#{version}-#{build}/macOS/#{APP_NAME}.pkg", File.dirname(__FILE__))
|
||||
UI.message("Creating PKG installer from archived app...")
|
||||
sh("productbuild --component '#{app_path}' /Applications --sign 'Developer ID Installer: Arkadiusz Fal (78Z5H3M6RJ)' '#{pkg_path}'")
|
||||
UI.success("Created PKG: #{pkg_path}")
|
||||
|
||||
notarize(
|
||||
package: "fastlane/builds/#{version}-#{build}/macOS/#{APP_NAME}.app",
|
||||
package: pkg_path,
|
||||
bundle_id: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
api_key: api_key,
|
||||
print_log: true
|
||||
|
||||
Reference in New Issue
Block a user