From 31bd74383dfd6e3e6335943861252887f14abeae Mon Sep 17 00:00:00 2001 From: Matt Robinson Date: Tue, 20 Dec 2022 11:49:55 -0600 Subject: [PATCH 1/3] Move MastodonSDK to dynamic framework --- Mastodon.xcodeproj/project.pbxproj | 34 ++++++++++++++++-------------- MastodonSDK/Package.swift | 4 +++- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index 74b7841a5..50114c55b 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -75,6 +75,11 @@ 2DAC9E46262FC9FD0062E1A6 /* SuggestionAccountTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DAC9E45262FC9FD0062E1A6 /* SuggestionAccountTableViewCell.swift */; }; 2DCB73FD2615C13900EC03D4 /* SearchRecommendCollectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DCB73FC2615C13900EC03D4 /* SearchRecommendCollectionHeader.swift */; }; 2DE0FACE2615F7AD00CDF649 /* RecommendAccountSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DE0FACD2615F7AD00CDF649 /* RecommendAccountSection.swift */; }; + 357FEE8729522CA50021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8629522CA50021C9DC /* MastodonSDK */; }; + 357FEE8829522CA50021C9DC /* MastodonSDK in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8629522CA50021C9DC /* MastodonSDK */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + 357FEE8A29522CB60021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8929522CB60021C9DC /* MastodonSDK */; }; + 357FEE8E29522CC00021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8D29522CC00021C9DC /* MastodonSDK */; }; + 357FEE9229522CE60021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE9129522CE60021C9DC /* MastodonSDK */; }; 5B24BBDA262DB14800A9381B /* ReportViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBD7262DB14800A9381B /* ReportViewModel.swift */; }; 5B24BBDB262DB14800A9381B /* ReportStatusViewModel+Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBD8262DB14800A9381B /* ReportStatusViewModel+Diffable.swift */; }; 5B90C45E262599800002E742 /* SettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B90C456262599800002E742 /* SettingsViewModel.swift */; }; @@ -169,10 +174,6 @@ DB1FD44425F26CCC004CFCFC /* PickServerSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB1FD44325F26CCC004CFCFC /* PickServerSection.swift */; }; DB1FD45025F26FA1004CFCFC /* MastodonPickServerViewModel+Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB1FD44F25F26FA1004CFCFC /* MastodonPickServerViewModel+Diffable.swift */; }; DB1FD45A25F27898004CFCFC /* CategoryPickerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB1FD45925F27898004CFCFC /* CategoryPickerItem.swift */; }; - DB22C92228E700A10082A9E9 /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = DB22C92128E700A10082A9E9 /* MastodonSDK */; }; - DB22C92428E700A80082A9E9 /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = DB22C92328E700A80082A9E9 /* MastodonSDK */; }; - DB22C92628E700AF0082A9E9 /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = DB22C92528E700AF0082A9E9 /* MastodonSDK */; }; - DB22C92828E700B70082A9E9 /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = DB22C92728E700B70082A9E9 /* MastodonSDK */; }; DB2B3ABC25E37E15007045F9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DB2B3ABE25E37E15007045F9 /* InfoPlist.strings */; }; DB2F073525E8ECF000957B2D /* AuthenticationViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB2F073325E8ECF000957B2D /* AuthenticationViewModel.swift */; }; DB2FF510260B113300ADA9FE /* ComposeStatusPollExpiresOptionCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB2FF50F260B113300ADA9FE /* ComposeStatusPollExpiresOptionCollectionViewCell.swift */; }; @@ -492,6 +493,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( + 357FEE8829522CA50021C9DC /* MastodonSDK in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -1085,7 +1087,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DB22C92428E700A80082A9E9 /* MastodonSDK in Frameworks */, + 357FEE8729522CA50021C9DC /* MastodonSDK in Frameworks */, DBF96326262EC0A6001D8D25 /* AuthenticationServices.framework in Frameworks */, 87FFDA5D898A5C42ADCB35E7 /* Pods_Mastodon.framework in Frameworks */, ); @@ -1112,7 +1114,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DB22C92828E700B70082A9E9 /* MastodonSDK in Frameworks */, + 357FEE9229522CE60021C9DC /* MastodonSDK in Frameworks */, DB8FABC726AEC7B2008E5AF4 /* Intents.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1121,7 +1123,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DB22C92628E700AF0082A9E9 /* MastodonSDK in Frameworks */, + 357FEE8E29522CC00021C9DC /* MastodonSDK in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1129,7 +1131,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DB22C92228E700A10082A9E9 /* MastodonSDK in Frameworks */, + 357FEE8A29522CB60021C9DC /* MastodonSDK in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2755,7 +2757,7 @@ ); name = Mastodon; packageProductDependencies = ( - DB22C92328E700A80082A9E9 /* MastodonSDK */, + 357FEE8629522CA50021C9DC /* MastodonSDK */, ); productName = Mastodon; productReference = DB427DD225BAA00100D1B89D /* Mastodon.app */; @@ -2814,7 +2816,7 @@ ); name = MastodonIntent; packageProductDependencies = ( - DB22C92728E700B70082A9E9 /* MastodonSDK */, + 357FEE9129522CE60021C9DC /* MastodonSDK */, ); productName = MastodonIntent; productReference = DB8FABC626AEC7B2008E5AF4 /* MastodonIntent.appex */; @@ -2834,7 +2836,7 @@ ); name = ShareActionExtension; packageProductDependencies = ( - DB22C92528E700AF0082A9E9 /* MastodonSDK */, + 357FEE8D29522CC00021C9DC /* MastodonSDK */, ); productName = ShareActionExtension; productReference = DBC6461226A170AB00B0E31B /* ShareActionExtension.appex */; @@ -2854,7 +2856,7 @@ ); name = NotificationService; packageProductDependencies = ( - DB22C92128E700A10082A9E9 /* MastodonSDK */, + 357FEE8929522CB60021C9DC /* MastodonSDK */, ); productName = NotificationService; productReference = DBF8AE13263293E400C9C23C /* NotificationService.appex */; @@ -4642,19 +4644,19 @@ /* End XCConfigurationList section */ /* Begin XCSwiftPackageProductDependency section */ - DB22C92128E700A10082A9E9 /* MastodonSDK */ = { + 357FEE8629522CA50021C9DC /* MastodonSDK */ = { isa = XCSwiftPackageProductDependency; productName = MastodonSDK; }; - DB22C92328E700A80082A9E9 /* MastodonSDK */ = { + 357FEE8929522CB60021C9DC /* MastodonSDK */ = { isa = XCSwiftPackageProductDependency; productName = MastodonSDK; }; - DB22C92528E700AF0082A9E9 /* MastodonSDK */ = { + 357FEE8D29522CC00021C9DC /* MastodonSDK */ = { isa = XCSwiftPackageProductDependency; productName = MastodonSDK; }; - DB22C92728E700B70082A9E9 /* MastodonSDK */ = { + 357FEE9129522CE60021C9DC /* MastodonSDK */ = { isa = XCSwiftPackageProductDependency; productName = MastodonSDK; }; diff --git a/MastodonSDK/Package.swift b/MastodonSDK/Package.swift index 1ac22e6a7..7939f051e 100644 --- a/MastodonSDK/Package.swift +++ b/MastodonSDK/Package.swift @@ -12,6 +12,7 @@ let package = Package( products: [ .library( name: "MastodonSDK", + type: .dynamic, targets: [ "CoreDataStack", "MastodonAsset", @@ -21,7 +22,8 @@ let package = Package( "MastodonLocalization", "MastodonSDK", "MastodonUI", - ]) + ] + ) ], dependencies: [ .package(name: "ArkanaKeys", path: "../dependencies/ArkanaKeys"), From 6b041abd6f22d8be886ee22b18c2e36724968dd0 Mon Sep 17 00:00:00 2001 From: Matt Robinson Date: Tue, 20 Dec 2022 12:59:40 -0600 Subject: [PATCH 2/3] Publish both static & dynamic libraries --- Mastodon.xcodeproj/project.pbxproj | 44 +++++++++++++++--------------- MastodonSDK/Package.swift | 28 ++++++++++++------- 2 files changed, 40 insertions(+), 32 deletions(-) diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index 50114c55b..b001db762 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -75,11 +75,11 @@ 2DAC9E46262FC9FD0062E1A6 /* SuggestionAccountTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DAC9E45262FC9FD0062E1A6 /* SuggestionAccountTableViewCell.swift */; }; 2DCB73FD2615C13900EC03D4 /* SearchRecommendCollectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DCB73FC2615C13900EC03D4 /* SearchRecommendCollectionHeader.swift */; }; 2DE0FACE2615F7AD00CDF649 /* RecommendAccountSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DE0FACD2615F7AD00CDF649 /* RecommendAccountSection.swift */; }; - 357FEE8729522CA50021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8629522CA50021C9DC /* MastodonSDK */; }; - 357FEE8829522CA50021C9DC /* MastodonSDK in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8629522CA50021C9DC /* MastodonSDK */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; - 357FEE8A29522CB60021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8929522CB60021C9DC /* MastodonSDK */; }; - 357FEE8E29522CC00021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE8D29522CC00021C9DC /* MastodonSDK */; }; - 357FEE9229522CE60021C9DC /* MastodonSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEE9129522CE60021C9DC /* MastodonSDK */; }; + 357FEEAF29523D470021C9DC /* MastodonSDKDynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEEAE29523D470021C9DC /* MastodonSDKDynamic */; }; + 357FEEB029523D470021C9DC /* MastodonSDKDynamic in Embed Frameworks */ = {isa = PBXBuildFile; productRef = 357FEEAE29523D470021C9DC /* MastodonSDKDynamic */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + 357FEEB229523D510021C9DC /* MastodonSDKDynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEEB129523D510021C9DC /* MastodonSDKDynamic */; }; + 357FEEB629523D5C0021C9DC /* MastodonSDKDynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEEB529523D5C0021C9DC /* MastodonSDKDynamic */; }; + 357FEEBA29523D660021C9DC /* MastodonSDKDynamic in Frameworks */ = {isa = PBXBuildFile; productRef = 357FEEB929523D660021C9DC /* MastodonSDKDynamic */; }; 5B24BBDA262DB14800A9381B /* ReportViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBD7262DB14800A9381B /* ReportViewModel.swift */; }; 5B24BBDB262DB14800A9381B /* ReportStatusViewModel+Diffable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B24BBD8262DB14800A9381B /* ReportStatusViewModel+Diffable.swift */; }; 5B90C45E262599800002E742 /* SettingsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B90C456262599800002E742 /* SettingsViewModel.swift */; }; @@ -493,7 +493,7 @@ dstPath = ""; dstSubfolderSpec = 10; files = ( - 357FEE8829522CA50021C9DC /* MastodonSDK in Embed Frameworks */, + 357FEEB029523D470021C9DC /* MastodonSDKDynamic in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -1087,7 +1087,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 357FEE8729522CA50021C9DC /* MastodonSDK in Frameworks */, + 357FEEAF29523D470021C9DC /* MastodonSDKDynamic in Frameworks */, DBF96326262EC0A6001D8D25 /* AuthenticationServices.framework in Frameworks */, 87FFDA5D898A5C42ADCB35E7 /* Pods_Mastodon.framework in Frameworks */, ); @@ -1114,7 +1114,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 357FEE9229522CE60021C9DC /* MastodonSDK in Frameworks */, + 357FEEBA29523D660021C9DC /* MastodonSDKDynamic in Frameworks */, DB8FABC726AEC7B2008E5AF4 /* Intents.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1123,7 +1123,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 357FEE8E29522CC00021C9DC /* MastodonSDK in Frameworks */, + 357FEEB629523D5C0021C9DC /* MastodonSDKDynamic in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1131,7 +1131,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 357FEE8A29522CB60021C9DC /* MastodonSDK in Frameworks */, + 357FEEB229523D510021C9DC /* MastodonSDKDynamic in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2757,7 +2757,7 @@ ); name = Mastodon; packageProductDependencies = ( - 357FEE8629522CA50021C9DC /* MastodonSDK */, + 357FEEAE29523D470021C9DC /* MastodonSDKDynamic */, ); productName = Mastodon; productReference = DB427DD225BAA00100D1B89D /* Mastodon.app */; @@ -2816,7 +2816,7 @@ ); name = MastodonIntent; packageProductDependencies = ( - 357FEE9129522CE60021C9DC /* MastodonSDK */, + 357FEEB929523D660021C9DC /* MastodonSDKDynamic */, ); productName = MastodonIntent; productReference = DB8FABC626AEC7B2008E5AF4 /* MastodonIntent.appex */; @@ -2836,7 +2836,7 @@ ); name = ShareActionExtension; packageProductDependencies = ( - 357FEE8D29522CC00021C9DC /* MastodonSDK */, + 357FEEB529523D5C0021C9DC /* MastodonSDKDynamic */, ); productName = ShareActionExtension; productReference = DBC6461226A170AB00B0E31B /* ShareActionExtension.appex */; @@ -2856,7 +2856,7 @@ ); name = NotificationService; packageProductDependencies = ( - 357FEE8929522CB60021C9DC /* MastodonSDK */, + 357FEEB129523D510021C9DC /* MastodonSDKDynamic */, ); productName = NotificationService; productReference = DBF8AE13263293E400C9C23C /* NotificationService.appex */; @@ -4644,21 +4644,21 @@ /* End XCConfigurationList section */ /* Begin XCSwiftPackageProductDependency section */ - 357FEE8629522CA50021C9DC /* MastodonSDK */ = { + 357FEEAE29523D470021C9DC /* MastodonSDKDynamic */ = { isa = XCSwiftPackageProductDependency; - productName = MastodonSDK; + productName = MastodonSDKDynamic; }; - 357FEE8929522CB60021C9DC /* MastodonSDK */ = { + 357FEEB129523D510021C9DC /* MastodonSDKDynamic */ = { isa = XCSwiftPackageProductDependency; - productName = MastodonSDK; + productName = MastodonSDKDynamic; }; - 357FEE8D29522CC00021C9DC /* MastodonSDK */ = { + 357FEEB529523D5C0021C9DC /* MastodonSDKDynamic */ = { isa = XCSwiftPackageProductDependency; - productName = MastodonSDK; + productName = MastodonSDKDynamic; }; - 357FEE9129522CE60021C9DC /* MastodonSDK */ = { + 357FEEB929523D660021C9DC /* MastodonSDKDynamic */ = { isa = XCSwiftPackageProductDependency; - productName = MastodonSDK; + productName = MastodonSDKDynamic; }; /* End XCSwiftPackageProductDependency section */ }; diff --git a/MastodonSDK/Package.swift b/MastodonSDK/Package.swift index 7939f051e..9eca5e460 100644 --- a/MastodonSDK/Package.swift +++ b/MastodonSDK/Package.swift @@ -3,6 +3,17 @@ import PackageDescription +let publicLibraryTargets = [ + "CoreDataStack", + "MastodonAsset", + "MastodonCommon", + "MastodonCore", + "MastodonExtension", + "MastodonLocalization", + "MastodonSDK", + "MastodonUI", +] + let package = Package( name: "MastodonSDK", defaultLocalization: "en", @@ -10,19 +21,16 @@ let package = Package( .iOS(.v14), ], products: [ + // Static Library .library( name: "MastodonSDK", + targets: publicLibraryTargets + ), + // Dynamic Library + .library( + name: "MastodonSDKDynamic", type: .dynamic, - targets: [ - "CoreDataStack", - "MastodonAsset", - "MastodonCommon", - "MastodonCore", - "MastodonExtension", - "MastodonLocalization", - "MastodonSDK", - "MastodonUI", - ] + targets: publicLibraryTargets ) ], dependencies: [ From da8b6848b764536a156b309786cbd53e8b8909d5 Mon Sep 17 00:00:00 2001 From: Matt Robinson Date: Tue, 20 Dec 2022 13:16:31 -0600 Subject: [PATCH 3/3] Exclude `Preview Assets.xcassets` from Release config --- Mastodon.xcodeproj/project.pbxproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index b001db762..56ee3a4a4 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -3938,6 +3938,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_ASSET_PATHS = "Mastodon/Resources/Preview\\ Assets.xcassets"; DEVELOPMENT_TEAM = 5Z4GVSS33P; + EXCLUDED_SOURCE_FILE_NAMES = "Mastodon/Resources/Preview\\ Assets.xcassets"; INFOPLIST_FILE = Mastodon/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)",