{"id":13995208,"url":"https://github.com/darrarski/xcframework-maker","last_synced_at":"2025-07-30T12:32:00.181Z","repository":{"id":41568612,"uuid":"378937314","full_name":"darrarski/xcframework-maker","owner":"darrarski","description":"macOS utility for converting fat-frameworks to SPM-compatible XCFramework with arm64-simulator support","archived":false,"fork":false,"pushed_at":"2021-06-29T14:48:56.000Z","size":64,"stargazers_count":346,"open_issues_count":1,"forks_count":22,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-29T17:38:19.789Z","etag":null,"topics":["arm64-simulator","spm","swift-package-manager","xcframework"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darrarski.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-06-21T13:19:26.000Z","updated_at":"2024-09-19T12:16:21.000Z","dependencies_parsed_at":"2022-07-09T22:46:21.453Z","dependency_job_id":null,"html_url":"https://github.com/darrarski/xcframework-maker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2Fxcframework-maker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2Fxcframework-maker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2Fxcframework-maker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darrarski%2Fxcframework-maker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darrarski","download_url":"https://codeload.github.com/darrarski/xcframework-maker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228133616,"owners_count":17874511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arm64-simulator","spm","swift-package-manager","xcframework"],"created_at":"2024-08-09T14:03:18.269Z","updated_at":"2024-12-04T15:17:40.458Z","avatar_url":"https://github.com/darrarski.png","language":"Swift","funding_links":["https://www.buymeacoffee.com/darrarski"],"categories":["Swift"],"sub_categories":[],"readme":"# xcframework-maker\n\n![swift 5.4](https://img.shields.io/badge/swift-5.4-orange.svg)\n![platform macOS](https://img.shields.io/badge/platform-macOS-blue)\n![SPM supported](https://img.shields.io/badge/SPM-supported-green)\n\nmacOS utility for converting fat-frameworks to SPM-compatible XCFramework with arm64-simulator support.\n\n## 📝 Description\n\n`make-xcframework` is a simple command-line utility written in Swift that creates **XCFramework** file from fat framework files. The resulting XCFramework file can be added as a dependency to your **Swift Package**, using `.binaryTarget` (read more in [official documentation](https://docs.swift.org/package-manager/PackageDescription/PackageDescription.html)).\n\nOptionally, **arm64-simulator** support can be included in the resulting XCFramework to allow development on a computer with **Apple Silicon (M1)** processor without a need to run Xcode through Rosetta.\n\nThe `xcframework-maker` Swift Package contains `make-xcframework` that can be used from the command line and `XCFrameworkMaker` library that you can integrate with your Swift Package and use programmatically.\n\n**Note:** [arm64-to-sim](http://github.com/darrarski/arm64-to-sim) is used to \"hack\" the native (device) **arm64** architecture slice so it can be used in a simulator running on Apple Silicon. This is an experimental feature, and **it can fail for many reasons**. It was tested and proved to be working with the `GoogleInteractiveMediaAds` dynamic fat framework, but your experience may vary.\n\n## 🛠 Build\n\nUse Swift 5.4 for building the utility on macOS:\n\n```sh\nswift build -c release\n```\n\nYou can copy the executable or run it directly from the build directory:\n\n```sh\n.build/release/make-xcframework\n```\n\n## ▶️ Usage\n\n```\nOVERVIEW: Utility for creating XCFramework from legacy fat-framework files.\n\nUse this tool to create XCFramework from legacy fat-framework files. Resulting XCFramework can be\nadded as a dependency to your Swift Package. Optionally arm64-simulator support can be included in\nthe resulting XCFramework, so it can be used on M1 Mac without the need to run Xcode through\nRosetta.\n\nUSAGE: make-xcframework [-ios \u003cpath\u003e] [-tvos \u003cpath\u003e] [-arm64sim] -output \u003cpath\u003e [-verbose]\n\nOPTIONS:\n  -ios \u003cpath\u003e             iOS input framework path.\n        Provide a path to the iOS fat framework that should be included in the resulting\n        XCFramework. Eg \"path/to/iOS/Framework.framework\"\n  -tvos \u003cpath\u003e            tvOS input framework path.\n        Provide a path to the tvOS fat framework that should be included in the resulting\n        XCFramework. Eg \"path/to/tvOS/Framework.framework\"\n  -arm64sim               Add support for arm64 simulator.\n        Use device-arm64 architecture slice as a simulator-arm64 architecture slice and include it\n        the resulting XCFramework. This makes development possible on M1 Mac without using Rosetta.\n  -output \u003cpath\u003e          Output directory path.\n        Provide a path to a directory where the resulting XCFramework should be created. Eg\n        \"path/to/output/directory\"\n  -verbose                Log detailed info to standard output.\n        When this flag is provided, detailed information about each performed action is logged to\n        standard output.\n  -help, -h               Show help information.\n```\n\n### Example - GoogleInteractiveMediaAds\n\n1. Download GoogleInteractiveMediaAds fat-frameworks from Google website:\n    - [IMA SDK for iOS](https://developers.google.com/interactive-media-ads/docs/sdks/ios/dai/download)\n    - [IMA SDK for tvOS](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/dai/download)\n2. Unzip downloaded files.\n3. Run `make-xcframework`:\n\n    ```sh\n    make-xcframework \\\n      -ios path/to/ios/GoogleInteractiveMediaAds.framework \\\n      -tvos path/to/tvos/GoogleInteractiveMediaAds.framework \\\n      -arm64sim \\\n      -output output/path\n    ```\n\n4. Resulting XCFramework will be created in the provided output directory:\n\n    ```sh\n    output/path/GoogleInteractiveMediaAds.xcframework\n    ```\n\n## ☕️ Do you like the project?\n\n\u003ca href=\"https://www.buymeacoffee.com/darrarski\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" height=\"60\" width=\"217\" style=\"height: 60px !important;width: 217px !important;\" \u003e\u003c/a\u003e\n\n## 📄 License\n\nCopyright © 2021 Dariusz Rybicki Darrarski\n\nLicense: [MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarrarski%2Fxcframework-maker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarrarski%2Fxcframework-maker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarrarski%2Fxcframework-maker/lists"}