Close Menu
geekfence.comgeekfence.com
    What's Hot

    Offshore CX enters a new era of scrutiny: why enterprises must rethink delivery models

    April 25, 2026

    Three reasons why DeepSeek’s new model matters

    April 25, 2026

    Gradient-based Planning for World Models at Longer Horizons – The Berkeley Artificial Intelligence Research Blog

    April 25, 2026
    Facebook X (Twitter) Instagram
    • About Us
    • Contact Us
    Facebook Instagram
    geekfence.comgeekfence.com
    • Home
    • UK Tech News
    • AI
    • Big Data
    • Cyber Security
      • Cloud Computing
      • iOS Development
    • IoT
    • Mobile
    • Software
      • Software Development
      • Software Engineering
    • Technology
      • Green Technology
      • Nanotechnology
    • Telecom
    geekfence.comgeekfence.com
    Home»iOS Development»How to make a Swift framework?
    iOS Development

    How to make a Swift framework?

    AdminBy AdminApril 25, 2026No Comments4 Mins Read0 Views
    Facebook Twitter Pinterest LinkedIn Telegram Tumblr Email
    How to make a Swift framework?
    Share
    Facebook Twitter LinkedIn Pinterest Email


    Creating a Swift framework shouldn’t be hard. This tutorial will help you making a universal framework for complex projects.

    What is a framework?

    A framework is a hierarchical directory that encapsulates shared resources, such as a dynamic shared library, nib files, image files, localized strings, header files, and reference documentation in a single package.

    So in a nutshell, a framework is a highly reusable component for your apps.

    How to make it?

    There is an article about Xcode conventions which will help you organize your projects, you should check that first, if you haven’t before.

    Traditional way

    There is a traditional way to make a framework in Xcode. I’m going to create a shared framework for all the apple platforms (iOS, macOS, tvOS, watchOS), which is going to be capable of logging things to the standard console.

    Let’s make the project:

    • Create a new project using one of the framework targets
    • Follow the instructions fill & name all the fields
    • Add all the other platform framework targets
    • Rename all targets according to the platform names

    Now in Finder:

    • Create a Sources folder and move all the Swift and header files there
    • Create an Assets folder with platforms subfolders
    • Move all the Info.plist files into the correct platfrom subdirectory
    • Create a Tests folder and move test files there

    Back to Xcode:

    • Remove every group and add the new Folders from Finder
    • Check that every target has the correct files (framework & tests)
    • Inside the header file, replace UIKit depencency with Foundation

    The goal is to achieve a structure somewhat like this:

    How to make a Swift framework?

    Project settings:

    • Select the correct plist files for the targets
    • Set your bundle identifiers (use my conventions)
    • Setup platform versions (advice: support 1 older version too)
    • Setup the plist files for the tests from the build settings pane
    • Set the product name (Console) in your framework build settings
    • Check your build phases and add the public header file.

    Scheme settings:

    • Go to the scheme settings and setup shared schemes for the frameworks
    • Gather coverage data if you need it
    • Write your framework you can use Swift “macros” to detect platforms

    There is a flag in Xcode to allow app extension API only, if you are embedding your framework inside an application extension it should be enabled!

    Congratulations, now you have your brand new Swift framework made in the traditional way. Let’s continue with a neat trick.

    Universal cross platform framework

    It is possible to create a multiplatform single scheme Xcode project with cross platform support for every platform, but it’s not recommended because it’s a hack. However multiple open source libraries do the same way, so why shouldn’t we.

    • Delete all the targets, schemes, except macOS!!!
    • Rename the remaining target, scheme (we don’t need platform names)
    • Use the project configuration file, set the xcconfig on the project
    • Delete Info.plist files, use one for the framework and one for the tests
    • Rename bundle identifier (we don’t need platform names there too)

    States can be mixed up if you are building for multiple platforms, however this is a nice clean way to support every platforms, without duplications.

    How to use a Swift framework?

    Embedding your framework is the most straightforward thing to do. You can simply drag the framework project to another Xcode project, the only thing left to do is to the embedded the framework into the application. You can go to the embedded binaries section inside the general project info tab and add the framework as a dependency.

    Swift Package Manager

    With SPM, you have to make a Package.swift file first, then you’ll be able to build your targets with the swift build command. Now that Xcode supports the Swift Package Manager, it’s really easy to integrate third party frameworks by using it.

    You can download the final framework examples from GitHub.

    Make sure that you don’t miss out my deep dive into swift frameworks post.



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email

    Related Posts

    ios – AVCaptureDevice.exposurePointOfInterest readback does not match set value on iPad Pro M4 / M3(UltraWide)and Gen2,3,4(TrueDepth) using resizeAspectFill

    April 24, 2026

    How I use FlowDeck to let my AI agent build and run my apps – Donny Wals

    April 21, 2026

    DTCoreText 2.0 | Cocoanetics

    April 20, 2026

    How to launch a macOS app at login?

    April 19, 2026

    ios – Xcode can’t find headers file from added frameworks

    April 18, 2026

    Self sizing cells with rotation support

    April 14, 2026
    Top Posts

    Understanding U-Net Architecture in Deep Learning

    November 25, 202531 Views

    Hard-braking events as indicators of road segment crash risk

    January 14, 202626 Views

    Redefining AI efficiency with extreme compression

    March 25, 202625 Views
    Don't Miss

    Offshore CX enters a new era of scrutiny: why enterprises must rethink delivery models

    April 25, 2026

    For over two decades, global Customer Experience (CX) delivery has been anchored in the core…

    Three reasons why DeepSeek’s new model matters

    April 25, 2026

    Gradient-based Planning for World Models at Longer Horizons – The Berkeley Artificial Intelligence Research Blog

    April 25, 2026

    Introducing A New Standard for Communications Visibility in Regulated Industries

    April 25, 2026
    Stay In Touch
    • Facebook
    • Instagram
    About Us

    At GeekFence, we are a team of tech-enthusiasts, industry watchers and content creators who believe that technology isn’t just about gadgets—it’s about how innovation transforms our lives, work and society. We’ve come together to build a place where readers, thinkers and industry insiders can converge to explore what’s next in tech.

    Our Picks

    Offshore CX enters a new era of scrutiny: why enterprises must rethink delivery models

    April 25, 2026

    Three reasons why DeepSeek’s new model matters

    April 25, 2026

    Subscribe to Updates

    Please enable JavaScript in your browser to complete this form.
    Loading
    • About Us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • Terms and Conditions
    © 2026 Geekfence.All Rigt Reserved.

    Type above and press Enter to search. Press Esc to cancel.