Skip to content

Commit

Permalink
Build a dynamic framework in CI to confirm the fix.
Browse files Browse the repository at this point in the history
  • Loading branch information
mbrandonw committed Sep 6, 2024
1 parent d32d303 commit 17bb59b
Show file tree
Hide file tree
Showing 5 changed files with 200 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
- tvos
- watchos
- examples
- dynamic-framework

steps:
- uses: actions/checkout@v4
Expand Down
18 changes: 18 additions & 0 deletions Examples/DynamicFramework/DynamicFramework.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// DynamicFramework.h
// DynamicFramework
//
// Created by Brandon Williams on 9/6/24.
//

#import <Foundation/Foundation.h>

//! Project version number for DynamicFramework.
FOUNDATION_EXPORT double DynamicFrameworkVersionNumber;

//! Project version string for DynamicFramework.
FOUNDATION_EXPORT const unsigned char DynamicFrameworkVersionString[];

// In this header, you should import all the public headers of your framework using statements like #import <DynamicFramework/PublicHeader.h>


1 change: 1 addition & 0 deletions Examples/DynamicFramework/File.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import UIKitNavigation
174 changes: 174 additions & 0 deletions Examples/Examples.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@
CA9D70582C2088B7003B672A /* MinimalObservationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA9D70572C2088B7003B672A /* MinimalObservationViewController.swift */; };
CA9D705A2C208977003B672A /* UIControlBindingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA9D70592C208977003B672A /* UIControlBindingsViewController.swift */; };
CA9D705E2C2089DD003B672A /* EnumControlsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA9D705D2C2089DD003B672A /* EnumControlsViewController.swift */; };
CAAFA9CE2C8B422100BB2BA1 /* DynamicFramework.h in Headers */ = {isa = PBXBuildFile; fileRef = CAAFA9CD2C8B422100BB2BA1 /* DynamicFramework.h */; settings = {ATTRIBUTES = (Public, ); }; };
CAAFA9D32C8B422800BB2BA1 /* UIKitNavigation in Frameworks */ = {isa = PBXBuildFile; productRef = CAAFA9D22C8B422800BB2BA1 /* UIKitNavigation */; };
CAAFA9D52C8B42F900BB2BA1 /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAAFA9D42C8B42F900BB2BA1 /* File.swift */; };
CABE9FC1272F2C0000AFC150 /* EnumNavigation.swift in Sources */ = {isa = PBXBuildFile; fileRef = CABE9FC0272F2C0000AFC150 /* EnumNavigation.swift */; };
CADCA3632C1CE75500DE645F /* SwiftUICaseStudies.swift in Sources */ = {isa = PBXBuildFile; fileRef = CADCA3622C1CE75500DE645F /* SwiftUICaseStudies.swift */; };
CADCA3662C1CE8BE00DE645F /* CaseStudy.swift in Sources */ = {isa = PBXBuildFile; fileRef = CADCA3652C1CE8BE00DE645F /* CaseStudy.swift */; };
Expand Down Expand Up @@ -96,6 +99,9 @@
CA9D70572C2088B7003B672A /* MinimalObservationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MinimalObservationViewController.swift; sourceTree = "<group>"; };
CA9D70592C208977003B672A /* UIControlBindingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIControlBindingsViewController.swift; sourceTree = "<group>"; };
CA9D705D2C2089DD003B672A /* EnumControlsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnumControlsViewController.swift; sourceTree = "<group>"; };
CAAFA9CB2C8B422100BB2BA1 /* DynamicFramework.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DynamicFramework.framework; sourceTree = BUILT_PRODUCTS_DIR; };
CAAFA9CD2C8B422100BB2BA1 /* DynamicFramework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DynamicFramework.h; sourceTree = "<group>"; };
CAAFA9D42C8B42F900BB2BA1 /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = "<group>"; };
CABE9FC0272F2C0000AFC150 /* EnumNavigation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EnumNavigation.swift; sourceTree = "<group>"; };
CADCA3622C1CE75500DE645F /* SwiftUICaseStudies.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUICaseStudies.swift; sourceTree = "<group>"; };
CADCA3652C1CE8BE00DE645F /* CaseStudy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaseStudy.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -140,6 +146,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
CAAFA9C82C8B422100BB2BA1 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
CAAFA9D32C8B422800BB2BA1 /* UIKitNavigation in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
Expand All @@ -149,6 +163,7 @@
CA48F2F82C49644000BE2C3C /* swiftui-navigation */,
CA473805272F0D330012CAC3 /* CaseStudies */,
CA49D95A2C20EAA400E6C5BB /* CaseStudiesTests */,
CAAFA9CC2C8B422100BB2BA1 /* DynamicFramework */,
CA4737F2272F09780012CAC3 /* Frameworks */,
CA4737C9272F095F0012CAC3 /* Inventory */,
CA473795272F08EF0012CAC3 /* Products */,
Expand All @@ -161,6 +176,7 @@
CA4737C8272F095F0012CAC3 /* Inventory.app */,
CA473804272F0D330012CAC3 /* CaseStudies.app */,
CA49D9592C20EAA400E6C5BB /* CaseStudiesTests.xctest */,
CAAFA9CB2C8B422100BB2BA1 /* DynamicFramework.framework */,
);
name = Products;
sourceTree = "<group>";
Expand Down Expand Up @@ -240,6 +256,15 @@
path = UIKit;
sourceTree = "<group>";
};
CAAFA9CC2C8B422100BB2BA1 /* DynamicFramework */ = {
isa = PBXGroup;
children = (
CAAFA9CD2C8B422100BB2BA1 /* DynamicFramework.h */,
CAAFA9D42C8B42F900BB2BA1 /* File.swift */,
);
path = DynamicFramework;
sourceTree = "<group>";
};
CADCA3642C1CE80B00DE645F /* SwiftUI */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -276,6 +301,17 @@
};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
CAAFA9C62C8B422100BB2BA1 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
CAAFA9CE2C8B422100BB2BA1 /* DynamicFramework.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
CA4737C7272F095F0012CAC3 /* Inventory */ = {
isa = PBXNativeTarget;
Expand Down Expand Up @@ -339,6 +375,27 @@
productReference = CA49D9592C20EAA400E6C5BB /* CaseStudiesTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
CAAFA9CA2C8B422100BB2BA1 /* DynamicFramework */ = {
isa = PBXNativeTarget;
buildConfigurationList = CAAFA9D12C8B422100BB2BA1 /* Build configuration list for PBXNativeTarget "DynamicFramework" */;
buildPhases = (
CAAFA9C62C8B422100BB2BA1 /* Headers */,
CAAFA9C72C8B422100BB2BA1 /* Sources */,
CAAFA9C82C8B422100BB2BA1 /* Frameworks */,
CAAFA9C92C8B422100BB2BA1 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = DynamicFramework;
packageProductDependencies = (
CAAFA9D22C8B422800BB2BA1 /* UIKitNavigation */,
);
productName = DynamicFramework;
productReference = CAAFA9CB2C8B422100BB2BA1 /* DynamicFramework.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
Expand All @@ -361,6 +418,10 @@
CreatedOnToolsVersion = 15.4;
TestTargetID = CA473803272F0D330012CAC3;
};
CAAFA9CA2C8B422100BB2BA1 = {
CreatedOnToolsVersion = 15.4;
LastSwiftMigration = 1540;
};
};
};
buildConfigurationList = CA47378F272F08EF0012CAC3 /* Build configuration list for PBXProject "Examples" */;
Expand All @@ -385,6 +446,7 @@
CA473803272F0D330012CAC3 /* CaseStudies */,
CA49D9582C20EAA400E6C5BB /* CaseStudiesTests */,
CA4737C7272F095F0012CAC3 /* Inventory */,
CAAFA9CA2C8B422100BB2BA1 /* DynamicFramework */,
);
};
/* End PBXProject section */
Expand Down Expand Up @@ -413,6 +475,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
CAAFA9C92C8B422100BB2BA1 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
Expand Down Expand Up @@ -474,6 +543,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
CAAFA9C72C8B422100BB2BA1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CAAFA9D52C8B42F900BB2BA1 /* File.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
Expand Down Expand Up @@ -764,6 +841,90 @@
};
name = Release;
};
CAAFA9CF2C8B422100BB2BA1 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = VFRXY8HC3H;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_MODULE_VERIFIER = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.DynamicFramework;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_INSTALL_OBJC_HEADER = NO;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
CAAFA9D02C8B422100BB2BA1 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = VFRXY8HC3H;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_MODULE_VERIFIER = YES;
GCC_C_LANGUAGE_STANDARD = gnu17;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 17.5;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
MARKETING_VERSION = 1.0;
MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++";
MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20";
PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.DynamicFramework;
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SKIP_INSTALL = YES;
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_INSTALL_OBJC_HEADER = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
Expand Down Expand Up @@ -803,6 +964,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
CAAFA9D12C8B422100BB2BA1 /* Build configuration list for PBXNativeTarget "DynamicFramework" */ = {
isa = XCConfigurationList;
buildConfigurations = (
CAAFA9CF2C8B422100BB2BA1 /* Debug */,
CAAFA9D02C8B422100BB2BA1 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
Expand Down Expand Up @@ -868,6 +1038,10 @@
package = CA48F3062C49651700BE2C3C /* XCRemoteSwiftPackageReference "swift-concurrency-extras" */;
productName = ConcurrencyExtras;
};
CAAFA9D22C8B422800BB2BA1 /* UIKitNavigation */ = {
isa = XCSwiftPackageProductDependency;
productName = UIKitNavigation;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = CA47378C272F08EF0012CAC3 /* Project object */;
Expand Down
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ test-examples:
-scheme CaseStudies \
-destination platform="$(PLATFORM_IOS)"

test-dynamic-framework:
xcodebuild build \
-workspace SwiftNavigation.xcworkspace \
-scheme DynamicFramework \
-destination platform="$(PLATFORM_MACOS)"

DOC_WARNINGS := $(shell xcodebuild clean docbuild \
-scheme SwiftUINavigation \
-destination platform="$(PLATFORM_MACOS)" \
Expand Down

0 comments on commit 17bb59b

Please sign in to comment.