From 2a8ae2866d0a02cf01332dce1d86038add56b17b Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 11:29:25 -0400 Subject: [PATCH 01/15] Install WordPressUI using SPM --- Podfile | 19 +----- Podfile.lock | 6 +- .../xcshareddata/swiftpm/Package.resolved | 9 +++ .../Blog Details/BlogDetailsViewController.m | 1 + .../BlogListViewController+Activity.swift | 6 ++ .../Blog/Blog List/BlogListViewController.m | 12 ++-- .../ViewRelated/Menus/MenuItemAbstractView.m | 2 + .../Post/PostSettingsViewController.m | 1 + .../System/WPTabBarController+Swift.swift | 5 ++ .../ViewRelated/System/WPTabBarController.m | 2 +- WordPress/WordPress.xcodeproj/project.pbxproj | 63 +++++++++++++++++-- .../NUX/Button/NUXButtonViewController.swift | 15 +++-- .../Sources/NUX/WPWalkthroughOverlayView.m | 1 + .../LoginLinkRequestViewController.swift | 1 + config/WordPressAuthenticator.xcconfig | 6 +- config/WordPressAuthenticatorTests.xcconfig | 4 +- 16 files changed, 107 insertions(+), 46 deletions(-) diff --git a/Podfile b/Podfile index e1fbcf6a46d0..5dbb2b39a1ed 100644 --- a/Podfile +++ b/Podfile @@ -39,14 +39,6 @@ def aztec pod 'WordPress-Editor-iOS', '~> 1.19.11' end -def wordpress_ui - pod 'WordPressUI', '~> 1.16' - # pod 'WordPressUI', git: 'https://github.com/wordpress-mobile/WordPressUI-iOS', tag: '' - # pod 'WordPressUI', git: 'https://github.com/wordpress-mobile/WordPressUI-iOS', branch: '' - # pod 'WordPressUI', git: 'https://github.com/wordpress-mobile/WordPressUI-iOS', commit: '' - # pod 'WordPressUI', path: '../WordPressUI-iOS' -end - def gravatar # pod 'Gravatar', path: '../Gravatar-SDK-iOS' # pod 'GravatarUI', path: '../Gravatar-SDK-iOS' @@ -109,7 +101,6 @@ abstract_target 'Apps' do # pod 'MediaEditor', path: '../MediaEditor-iOS' aztec - wordpress_ui ## WordPress App iOS ## ================= @@ -138,7 +129,6 @@ target 'WordPressShareExtension' do aztec shared_with_all_pods - wordpress_ui end target 'JetpackShareExtension' do @@ -148,7 +138,6 @@ target 'JetpackShareExtension' do aztec shared_with_all_pods - wordpress_ui end ## DraftAction Extension @@ -161,7 +150,6 @@ target 'WordPressDraftActionExtension' do aztec shared_with_all_pods - wordpress_ui end target 'JetpackDraftActionExtension' do @@ -171,7 +159,6 @@ target 'JetpackDraftActionExtension' do aztec shared_with_all_pods - wordpress_ui end ## Widgets @@ -182,7 +169,6 @@ target 'JetpackStatsWidgets' do project 'WordPress/WordPress.xcodeproj' shared_with_all_pods - wordpress_ui end ## Intents @@ -193,7 +179,6 @@ target 'JetpackIntents' do project 'WordPress/WordPress.xcodeproj' shared_with_all_pods - wordpress_ui end ## Notification Service Extension @@ -203,14 +188,12 @@ target 'WordPressNotificationServiceExtension' do project 'WordPress/WordPress.xcodeproj' wordpress_shared - wordpress_ui end target 'JetpackNotificationServiceExtension' do project 'WordPress/WordPress.xcodeproj' wordpress_shared - wordpress_ui end ## Screenshot Generation @@ -248,7 +231,7 @@ end # Linking the shared frameworks statically would lead to duplicate symbols # A future version of CocoaPods may make this easier to do. See https://github.com/CocoaPods/CocoaPods/issues/7428 shared_targets = %w[WordPressFlux] -dyanmic_framework_pods = %w[WordPressFlux WordPressShared WordPressUI] +dyanmic_framework_pods = %w[WordPressFlux WordPressShared] # Statically linking Sentry results in a conflict with `NSDictionary.objectAtKeyPath`, but dynamically # linking it resolves this. dyanmic_framework_pods += %w[Sentry SentryPrivate] diff --git a/Podfile.lock b/Podfile.lock index 29b50f1cf10b..7a87a79aeadd 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -24,7 +24,6 @@ PODS: - WordPress-Editor-iOS (1.19.11): - WordPress-Aztec-iOS (= 1.19.11) - WordPressShared (2.4.0) - - WordPressUI (1.16.0) DEPENDENCIES: - AppCenter (~> 5.0) @@ -40,14 +39,12 @@ DEPENDENCIES: - SwiftLint (= 0.54.0) - WordPress-Editor-iOS (~> 1.19.11) - WordPressShared (>= 2.3.1, ~> 2.3) - - WordPressUI (~> 1.16) SPEC REPOS: https://github.com/wordpress-mobile/cocoapods-specs.git: - WordPress-Aztec-iOS - WordPress-Editor-iOS - WordPressShared - - WordPressUI trunk: - AppCenter - CropViewController @@ -84,8 +81,7 @@ SPEC CHECKSUMS: WordPress-Aztec-iOS: 3732c6d865a5c9f35788377bdeda8a80ea10d0a1 WordPress-Editor-iOS: 453345420ced3d3ef20f0051b3df46ff10281e0c WordPressShared: 0160364ed24f4d67fed4e85003fefa837faad84f - WordPressUI: f883fdd2508a0bc525c19805b2bbae980b581271 -PODFILE CHECKSUM: 2c4301332e4759f1e2cf52493c97c0c95207b1a0 +PODFILE CHECKSUM: 66c21862899cff2ad15d7d514a10c3212f9f9a9d COCOAPODS: 1.15.2 diff --git a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved index cd10aa28f263..147c95ff9443 100644 --- a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -397,6 +397,15 @@ "version": "2.3.0" } }, + { + "package": "WordPressUI", + "repositoryURL": "https://github.com/wordpress-mobile/WordPressUI-iOS", + "state": { + "branch": "kean-patch-1", + "revision": "e848400c7af850e0668b36a4e566a2c71e4e0d7b", + "version": null + } + }, { "package": "wpxmlrpc", "repositoryURL": "https://github.com/wordpress-mobile/wpxmlrpc", diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index 64aebefef7b9..1b7683da4a3b 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -19,6 +19,7 @@ @import Gridicons; @import Reachability; +@import WordPressUIObjC; static NSString *const BlogDetailsCellIdentifier = @"BlogDetailsCell"; static NSString *const BlogDetailsPlanCellIdentifier = @"BlogDetailsPlanCell"; diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController+Activity.swift b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController+Activity.swift index bb06748c6959..c34ed67d17f8 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController+Activity.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController+Activity.swift @@ -1,6 +1,12 @@ import Foundation +import WordPressAuthenticator extension BlogListViewController: SearchableActivityConvertable { + @objc func showLoginForSelfHostedSite() { + setEditing(false, animated: false) + WordPressAuthenticator.showLoginForSelfHostedSite(self) + } + var activityType: String { return WPActivityType.siteList.rawValue } diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index 437dec61b1ff..7fff8f6cc8ff 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -2,6 +2,8 @@ #import "WordPress-Swift.h" #import "SVProgressHUD+Dismiss.h" +@import WordPressUI; +@import WordPressUIObjC; static CGFloat const BLVCHeaderViewLabelPadding = 10.0; @@ -567,7 +569,7 @@ - (void)registerForPostSignUpNotifications [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(showLoginControllerForAddingSelfHostedSite) + selector:@selector(showLoginForSelfHostedSite) name:NSNotification.PSIAddSelfHosted object:nil]; } @@ -956,12 +958,6 @@ - (WPAccount *)defaultWordPressComAccount return [WPAccount lookupDefaultWordPressComAccountInContext:context]; } -- (void)showLoginControllerForAddingSelfHostedSite -{ - [self setEditing:NO animated:NO]; - [WordPressAuthenticator showLoginForSelfHostedSite:self]; -} - - (void)setVisible:(BOOL)visible forBlog:(Blog *)blog { if(!visible && self.dataSource.blogsCount > HideAllMinSites) { @@ -1041,7 +1037,7 @@ - (void)showAddSiteAlertFrom:(id)source UIAlertController *alertController = [factory makeAddSiteAlertWithSource:@"my_site" canCreateWPComSite:canCreateWPComSite createWPComSite:^{ [self launchSiteCreation]; } canAddSelfHostedSite:canAddSelfHostedSite addSelfHostedSite:^{ - [self showLoginControllerForAddingSelfHostedSite]; + [self showLoginForSelfHostedSite]; }]; if ([source isKindOfClass:[UIView class]]) { diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m index 3c978a34b47f..0d2bff28d1ad 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m @@ -4,6 +4,8 @@ #import #import "WordPress-Swift.h" +@import WordPressUI; +@import WordPressUIObjC; @interface MenuItemDrawingView () diff --git a/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m b/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m index 83074af7bcd1..81115d877c4a 100644 --- a/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m +++ b/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m @@ -20,6 +20,7 @@ @import WordPressShared; @import WordPressKit; @import WordPressUI; +@import WordPressUIObjC; @import Reachability; typedef NS_ENUM(NSInteger, PostSettingsRow) { diff --git a/WordPress/Classes/ViewRelated/System/WPTabBarController+Swift.swift b/WordPress/Classes/ViewRelated/System/WPTabBarController+Swift.swift index 6c70fae8d85a..9bceea740fea 100644 --- a/WordPress/Classes/ViewRelated/System/WPTabBarController+Swift.swift +++ b/WordPress/Classes/ViewRelated/System/WPTabBarController+Swift.swift @@ -1,3 +1,4 @@ +import WordPressAuthenticator // MARK: - Tab Access Tracking @@ -17,6 +18,10 @@ fileprivate extension WPTab { } extension WPTabBarController { + @objc public class var wpSigninDidFinishNotification: String { + WordPressAuthenticator.WPSigninDidFinishNotification + } + private static let tabIndexToStatMap: [WPTab: WPAnalyticsStat] = [.mySites: .mySitesTabAccessed, .reader: .readerAccessed] private struct AssociatedKeys { diff --git a/WordPress/Classes/ViewRelated/System/WPTabBarController.m b/WordPress/Classes/ViewRelated/System/WPTabBarController.m index 5b1edac8d674..367c581aee4c 100644 --- a/WordPress/Classes/ViewRelated/System/WPTabBarController.m +++ b/WordPress/Classes/ViewRelated/System/WPTabBarController.m @@ -97,7 +97,7 @@ - (instancetype)initWithStaticScreens:(BOOL)shouldUseStaticScreens [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(signinDidFinish:) - name:WordPressAuthenticator.WPSigninDidFinishNotification + name:WPTabBarController.wpSigninDidFinishNotification object:nil]; // Watch for application badge number changes diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 95a9cc262e3e..9daf2f9a5c53 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -448,6 +448,10 @@ 0C0AE75A2A8FAD6A007D9D6C /* MediaPickerMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0AE7582A8FAD6A007D9D6C /* MediaPickerMenu.swift */; }; 0C0D3B0D2A4C79DE0050A00D /* BlazeCampaignsStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0D3B0C2A4C79DE0050A00D /* BlazeCampaignsStream.swift */; }; 0C0D3B0E2A4C79DE0050A00D /* BlazeCampaignsStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C0D3B0C2A4C79DE0050A00D /* BlazeCampaignsStream.swift */; }; + 0C0DF85B2C2DB5EC00011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF85A2C2DB5EC00011B7D /* WordPressUI */; }; + 0C0DF85D2C2DB60100011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF85C2C2DB60100011B7D /* WordPressUI */; }; + 0C0DF85F2C2DB61300011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF85E2C2DB61300011B7D /* WordPressUI */; }; + 0C0DF8612C2DB62E00011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8602C2DB62E00011B7D /* WordPressUI */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -520,6 +524,8 @@ 0C7E09252A4286F40052324C /* PostMetaButton+Swift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C7E09232A4286F40052324C /* PostMetaButton+Swift.swift */; }; 0C8078AB2A4E01A5002ABF29 /* PagingFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8078AA2A4E01A5002ABF29 /* PagingFooterView.swift */; }; 0C8078AC2A4E01A5002ABF29 /* PagingFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C8078AA2A4E01A5002ABF29 /* PagingFooterView.swift */; }; + 0C86B1A12C2DB2A7001AB70C /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C86B1A02C2DB2A7001AB70C /* WordPressUI */; }; + 0C86B1A52C2DB2B4001AB70C /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C86B1A42C2DB2B4001AB70C /* WordPressUI */; }; 0C896DDE2A3A762200D7D4E7 /* SettingsPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C896DDD2A3A762200D7D4E7 /* SettingsPicker.swift */; }; 0C896DE02A3A763400D7D4E7 /* SettingsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C896DDF2A3A763400D7D4E7 /* SettingsCell.swift */; }; 0C896DE22A3A767200D7D4E7 /* SiteVisibility+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C896DE12A3A767200D7D4E7 /* SiteVisibility+Extensions.swift */; }; @@ -11907,6 +11913,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0C0DF8612C2DB62E00011B7D /* WordPressUI in Frameworks */, 3FFB3F202AFC70B400A742B0 /* JetpackStatsWidgetsCore in Frameworks */, 4A972D162C239F23006AE0F0 /* WordPressKit.framework in Frameworks */, 0107E0DE28F97D5000DE87DB /* SwiftUI.framework in Frameworks */, @@ -12024,6 +12031,7 @@ 4A972D442C23B6D5006AE0F0 /* WordPressKit.framework in Frameworks */, 4A3AB6532C22F702006E0FA8 /* SVProgressHUD in Frameworks */, 4AD0285B2C22EE00004FBDD0 /* UIDeviceIdentifier in Frameworks */, + 0C86B1A52C2DB2B4001AB70C /* WordPressUI in Frameworks */, 4A65FC4D2C236649006ED20C /* NSURL+IDN in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -12075,6 +12083,7 @@ files = ( 4A972D2C2C23A00B006AE0F0 /* Down in Frameworks */, 4A972D322C23A2CD006AE0F0 /* Reachability in Frameworks */, + 0C0DF85D2C2DB60100011B7D /* WordPressUI in Frameworks */, 4BB2296498BE66D515E3D610 /* Pods_JetpackShareExtension.framework in Frameworks */, 4A972D342C23A30C006AE0F0 /* Gridicons in Frameworks */, 4A972D1B2C239F3C006AE0F0 /* WordPressKit.framework in Frameworks */, @@ -12089,6 +12098,7 @@ files = ( 4A972D212C239F54006AE0F0 /* CocoaLumberjackSwift in Frameworks */, 4A972D2A2C239FF0006AE0F0 /* Reachability in Frameworks */, + 0C0DF85F2C2DB61300011B7D /* WordPressUI in Frameworks */, 4A972D2E2C23A03A006AE0F0 /* Down in Frameworks */, 4A972D382C23A377006AE0F0 /* Gridicons in Frameworks */, 4A972D222C239F7C006AE0F0 /* WordPressKit.framework in Frameworks */, @@ -12102,6 +12112,7 @@ buildActionMask = 2147483647; files = ( DCAD9FCC94B311DCE8988D91 /* Pods_JetpackNotificationServiceExtension.framework in Frameworks */, + 0C0DF85B2C2DB5EC00011B7D /* WordPressUI in Frameworks */, 4A972D0F2C239EED006AE0F0 /* WordPressKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -12155,6 +12166,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0C86B1A12C2DB2A7001AB70C /* WordPressUI in Frameworks */, FABB26202602FC2C00C8785C /* iAd.framework in Frameworks */, FABB26212602FC2C00C8785C /* StoreKit.framework in Frameworks */, FABB26222602FC2C00C8785C /* CoreSpotlight.framework in Frameworks */, @@ -23019,6 +23031,7 @@ packageProductDependencies = ( 3FFB3F1F2AFC70B400A742B0 /* JetpackStatsWidgetsCore */, 4A972D142C239F0D006AE0F0 /* CocoaLumberjackSwift */, + 0C0DF8602C2DB62E00011B7D /* WordPressUI */, ); productName = WordPressHomeWidgetTodayExtension; productReference = 0107E0EA28F97D5000DE87DB /* JetpackStatsWidgets.appex */; @@ -23192,6 +23205,7 @@ 4A3AB6522C22F702006E0FA8 /* SVProgressHUD */, 4A65FC4C2C236649006ED20C /* NSURL+IDN */, 4A65FC4E2C23666B006ED20C /* Gridicons */, + 0C86B1A42C2DB2B4001AB70C /* WordPressUI */, ); productName = WordPressAuthenticator; productReference = 4AD953B42C21451700D0EEFA /* WordPressAuthenticator.framework */; @@ -23311,6 +23325,7 @@ 4A972D2F2C23A2AF006AE0F0 /* CocoaLumberjackSwift */, 4A972D312C23A2CD006AE0F0 /* Reachability */, 4A972D332C23A30C006AE0F0 /* Gridicons */, + 0C0DF85C2C2DB60100011B7D /* WordPressUI */, ); productName = WordPressShare; productReference = 8096212328E540D700940A5D /* JetpackShareExtension.appex */; @@ -23339,6 +23354,7 @@ 4A972D2D2C23A03A006AE0F0 /* Down */, 4A972D352C23A325006AE0F0 /* ZIPFoundation */, 4A972D372C23A377006AE0F0 /* Gridicons */, + 0C0DF85E2C2DB61300011B7D /* WordPressUI */, ); productName = WordPressDraftActionExtension; productReference = 8096218528E55C9400940A5D /* JetpackDraftActionExtension.appex */; @@ -23360,6 +23376,9 @@ 4A972D122C239EED006AE0F0 /* PBXTargetDependency */, ); name = JetpackNotificationServiceExtension; + packageProductDependencies = ( + 0C0DF85A2C2DB5EC00011B7D /* WordPressUI */, + ); productName = WordPressNotificationServiceExtension; productReference = 80F6D05428EE866A00953C1A /* JetpackNotificationServiceExtension.appex */; productType = "com.apple.product-type.app-extension"; @@ -23509,6 +23528,7 @@ 4A972D392C23A3B0006AE0F0 /* ZendeskSupportSDK */, 4A972D3B2C23A3D2006AE0F0 /* Reachability */, 4A972D3D2C23A3ED006AE0F0 /* Starscream */, + 0C86B1A02C2DB2A7001AB70C /* WordPressUI */, ); productName = WordPress; productReference = FABB26522602FC2C00C8785C /* Jetpack.app */; @@ -23762,6 +23782,7 @@ 4A3E8C492C23844E003628B3 /* XCRemoteSwiftPackageReference "JTAppleCalendar" */, 4AE417E22C23866900B383AF /* XCRemoteSwiftPackageReference "support_sdk_ios" */, 4A0CB27B2C23883B00A006B0 /* XCRemoteSwiftPackageReference "CocoaLumberjack" */, + 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */, ); productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */; projectDirPath = ""; @@ -25217,14 +25238,12 @@ inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress-frameworks.sh", "${BUILT_PRODUCTS_DIR}/WordPressShared/WordPressShared.framework", - "${BUILT_PRODUCTS_DIR}/WordPressUI/WordPressUI.framework", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/Gutenberg.framework/Gutenberg", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressShared.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressUI.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); @@ -25742,14 +25761,12 @@ inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack-frameworks.sh", "${BUILT_PRODUCTS_DIR}/WordPressShared/WordPressShared.framework", - "${BUILT_PRODUCTS_DIR}/WordPressUI/WordPressUI.framework", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/Gutenberg.framework/Gutenberg", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressShared.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressUI.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); @@ -36703,6 +36720,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/wordpress-mobile/WordPressUI-iOS"; + requirement = { + branch = "kean-patch-1"; + kind = branch; + }; + }; 0CD9FB852AFA71B9009D9C7A /* XCRemoteSwiftPackageReference "Charts" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/danielgindi/Charts"; @@ -36954,6 +36979,36 @@ isa = XCSwiftPackageProductDependency; productName = DesignSystem; }; + 0C0DF85A2C2DB5EC00011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C0DF85C2C2DB60100011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C0DF85E2C2DB61300011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C0DF8602C2DB62E00011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C86B1A02C2DB2A7001AB70C /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C86B1A42C2DB2B4001AB70C /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; 0CD9FB862AFA71B9009D9C7A /* DGCharts */ = { isa = XCSwiftPackageProductDependency; package = 0CD9FB852AFA71B9009D9C7A /* XCRemoteSwiftPackageReference "Charts" */; diff --git a/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift b/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift index ba4598d00108..ad077cf39afb 100644 --- a/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift +++ b/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift @@ -1,10 +1,15 @@ import UIKit import WordPressKit -@objc public protocol NUXButtonViewControllerDelegate { +public protocol NUXButtonViewControllerDelegate: AnyObject { func primaryButtonPressed() - @objc optional func secondaryButtonPressed() - @objc optional func tertiaryButtonPressed() + func secondaryButtonPressed() + func tertiaryButtonPressed() +} + +extension NUXButtonViewControllerDelegate { + public func secondaryButtonPressed() {} + public func tertiaryButtonPressed() {} } struct NUXButtonConfig { @@ -249,7 +254,7 @@ open class NUXButtonViewController: UIViewController { @IBAction func secondaryButtonPressed(_ sender: Any) { guard let callback = topButtonConfig?.callback else { - delegate?.secondaryButtonPressed?() + delegate?.secondaryButtonPressed() return } callback() @@ -257,7 +262,7 @@ open class NUXButtonViewController: UIViewController { @IBAction func tertiaryButtonPressed(_ sender: Any) { guard let callback = tertiaryButtonConfig?.callback else { - delegate?.tertiaryButtonPressed?() + delegate?.tertiaryButtonPressed() return } callback() diff --git a/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m b/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m index 1137fa80baad..d96939500234 100644 --- a/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m +++ b/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m @@ -5,6 +5,7 @@ #import @import WordPressUI; +@import WordPressUIObjC; @interface WPWalkthroughOverlayView() { UIImageView *_logo; diff --git a/WordPressAuthenticator/Sources/Signin/LoginLinkRequestViewController.swift b/WordPressAuthenticator/Sources/Signin/LoginLinkRequestViewController.swift index 9d5b915661c5..c80584929aaf 100644 --- a/WordPressAuthenticator/Sources/Signin/LoginLinkRequestViewController.swift +++ b/WordPressAuthenticator/Sources/Signin/LoginLinkRequestViewController.swift @@ -1,5 +1,6 @@ import UIKit import WordPressShared +import WordPressUI /// Step one in the auth link flow. This VC displays a form to request a "magic" /// authentication link be emailed to the user. Allows the user to signin via diff --git a/config/WordPressAuthenticator.xcconfig b/config/WordPressAuthenticator.xcconfig index 2a73053e8e72..baea9e0e1064 100644 --- a/config/WordPressAuthenticator.xcconfig +++ b/config/WordPressAuthenticator.xcconfig @@ -1,7 +1,7 @@ #include "Common.xcconfig" CLANG_ENABLE_MODULES = YES -SWIFT_INSTALL_OBJC_HEADER = YES +SWIFT_INSTALL_OBJC_HEADER = NO ENABLE_MODULE_VERIFIER = NO BUILD_LIBRARY_FOR_DISTRIBUTION = NO ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = NO @@ -10,5 +10,5 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_TREAT_WARNINGS_AS_ERRORS = NO WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressUI ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressShared -framework WordPressUI -framework WordPressKit +FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit +OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressShared -framework WordPressKit diff --git a/config/WordPressAuthenticatorTests.xcconfig b/config/WordPressAuthenticatorTests.xcconfig index 2a5812d1e245..52c38e968797 100644 --- a/config/WordPressAuthenticatorTests.xcconfig +++ b/config/WordPressAuthenticatorTests.xcconfig @@ -12,8 +12,8 @@ GCC_TREAT_WARNINGS_AS_ERRORS = NO ENABLE_USER_SCRIPT_SANDBOXING = NO WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit ${WP_EFFECTIVE_BUILD_DIR}/WordPressUI ${WP_EFFECTIVE_BUILD_DIR}/Expecta ${WP_EFFECTIVE_BUILD_DIR}/Specta ${WP_EFFECTIVE_BUILD_DIR}/WordPressAuthenticator -OTHER_LDFLAGS = $(inherited) -ObjC -liconv -framework WordPressShared -framework WordPressKit -framework WordPressUI -framework Expecta -framework Specta -framework WordPressAuthenticator +FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit ${WP_EFFECTIVE_BUILD_DIR}/Expecta ${WP_EFFECTIVE_BUILD_DIR}/Specta ${WP_EFFECTIVE_BUILD_DIR}/WordPressAuthenticator +OTHER_LDFLAGS = $(inherited) -ObjC -liconv -framework WordPressShared -framework WordPressKit -framework Expecta -framework Specta -framework WordPressAuthenticator PODS_ROOT = ${SRCROOT}/../Pods PODS_CONFIGURATION_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) From 72e98cab2fcf126362fc0ff349764e5562a8aa0b Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 11:38:35 -0400 Subject: [PATCH 02/15] Remove WordPressShared from Podfile --- Podfile | 88 +--- Podfile.lock | 6 +- .../xcshareddata/swiftpm/Package.resolved | 432 ------------------ WordPress/WordPress.xcodeproj/project.pbxproj | 254 +--------- 4 files changed, 8 insertions(+), 772 deletions(-) diff --git a/Podfile b/Podfile index 5dbb2b39a1ed..01da067a64e8 100644 --- a/Podfile +++ b/Podfile @@ -19,16 +19,6 @@ inhibit_all_warnings! use_frameworks! workspace 'WordPress.xcworkspace' -## Pods shared between all the targets -## =================================== -## -def wordpress_shared - pod 'WordPressShared', '~> 2.3', '>= 2.3.1' - # pod 'WordPressShared', git: 'https://github.com/wordpress-mobile/WordPress-iOS-Shared.git', branch: '' - # pod 'WordPressShared', git: 'https://github.com/wordpress-mobile/WordPress-iOS-Shared.git', commit: '' - # pod 'WordPressShared', path: '../WordPress-iOS-Shared' -end - def aztec ## When using a tagged version, feel free to comment out the WordPress-Aztec-iOS line below. ## When using a commit number (during development) you should provide the same commit number for both pods. @@ -48,29 +38,15 @@ def gravatar pod 'GravatarUI', '2.0.0' end -def shared_with_all_pods - wordpress_shared -end - def shared_test_pods pod 'Expecta', '1.0.6' pod 'Specta', '1.0.7' gutenberg_pod end -def shared_with_extension_pods - # The PrivacyInfo in this library is incorrectly copied to the app bundle's root directory. - # That conflicts with the our own app's PrivacyInfo. We can update this library once the - # issue is resolved. - # See https://github.com/weichsel/ZIPFoundation/pull/314 -end - abstract_target 'Apps' do project 'WordPress/WordPress.xcodeproj' - shared_with_all_pods - shared_with_extension_pods - ## Gutenberg (React Native) ## ===================== ## @@ -91,7 +67,6 @@ abstract_target 'Apps' do ## Automattic libraries ## ==================== ## - wordpress_shared gravatar # Production @@ -125,19 +100,13 @@ end target 'WordPressShareExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods end target 'JetpackShareExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods end ## DraftAction Extension @@ -146,68 +115,13 @@ end target 'WordPressDraftActionExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods end target 'JetpackDraftActionExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods -end - -## Widgets -## ============ -## - -target 'JetpackStatsWidgets' do - project 'WordPress/WordPress.xcodeproj' - - shared_with_all_pods -end - -## Intents -## ============ -## - -target 'JetpackIntents' do - project 'WordPress/WordPress.xcodeproj' - - shared_with_all_pods -end - -## Notification Service Extension -## ============================== -## -target 'WordPressNotificationServiceExtension' do - project 'WordPress/WordPress.xcodeproj' - - wordpress_shared -end - -target 'JetpackNotificationServiceExtension' do - project 'WordPress/WordPress.xcodeproj' - - wordpress_shared -end - -## Screenshot Generation -## =================== -## -target 'WordPressScreenshotGeneration' do - project 'WordPress/WordPress.xcodeproj' -end - -## UI Tests -## =================== -## -target 'WordPressUITests' do - project 'WordPress/WordPress.xcodeproj' end ## Tools @@ -231,7 +145,7 @@ end # Linking the shared frameworks statically would lead to duplicate symbols # A future version of CocoaPods may make this easier to do. See https://github.com/CocoaPods/CocoaPods/issues/7428 shared_targets = %w[WordPressFlux] -dyanmic_framework_pods = %w[WordPressFlux WordPressShared] +dyanmic_framework_pods = %w[WordPressFlux] # Statically linking Sentry results in a conflict with `NSDictionary.objectAtKeyPath`, but dynamically # linking it resolves this. dyanmic_framework_pods += %w[Sentry SentryPrivate] diff --git a/Podfile.lock b/Podfile.lock index 7a87a79aeadd..934f511023b0 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -23,7 +23,6 @@ PODS: - WordPress-Aztec-iOS (1.19.11) - WordPress-Editor-iOS (1.19.11): - WordPress-Aztec-iOS (= 1.19.11) - - WordPressShared (2.4.0) DEPENDENCIES: - AppCenter (~> 5.0) @@ -38,13 +37,11 @@ DEPENDENCIES: - Specta (= 1.0.7) - SwiftLint (= 0.54.0) - WordPress-Editor-iOS (~> 1.19.11) - - WordPressShared (>= 2.3.1, ~> 2.3) SPEC REPOS: https://github.com/wordpress-mobile/cocoapods-specs.git: - WordPress-Aztec-iOS - WordPress-Editor-iOS - - WordPressShared trunk: - AppCenter - CropViewController @@ -80,8 +77,7 @@ SPEC CHECKSUMS: SwiftLint: c1de071d9d08c8aba837545f6254315bc900e211 WordPress-Aztec-iOS: 3732c6d865a5c9f35788377bdeda8a80ea10d0a1 WordPress-Editor-iOS: 453345420ced3d3ef20f0051b3df46ff10281e0c - WordPressShared: 0160364ed24f4d67fed4e85003fefa837faad84f -PODFILE CHECKSUM: 66c21862899cff2ad15d7d514a10c3212f9f9a9d +PODFILE CHECKSUM: f65c3de1d7b83328fa3e3aad7e154cafcb1887e0 COCOAPODS: 1.15.2 diff --git a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved index 147c95ff9443..c564eb2e5be0 100644 --- a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,384 +1,6 @@ { "object": { "pins": [ - { - "package": "Alamofire", - "repositoryURL": "https://github.com/Alamofire/Alamofire.git", - "state": { - "branch": null, - "revision": "f455c2975872ccd2d9c81594c658af65716e9b9a", - "version": "5.9.1" - } - }, - { - "package": "AlamofireImage", - "repositoryURL": "https://github.com/Alamofire/AlamofireImage", - "state": { - "branch": null, - "revision": "1eaf3b6c6882bed10f6e7b119665599dd2329aa1", - "version": "4.3.0" - } - }, - { - "package": "AlamofireNetworkActivityIndicator", - "repositoryURL": "https://github.com/Alamofire/AlamofireNetworkActivityIndicator", - "state": { - "branch": null, - "revision": "392bed083e8d193aca16bfa684ee24e4bcff0510", - "version": "3.1.0" - } - }, - { - "package": "AutomatticTracksiOS", - "repositoryURL": "https://github.com/Automattic/Automattic-Tracks-iOS", - "state": { - "branch": null, - "revision": "948c7642009237c74ef30dad59f03835416873eb", - "version": "3.4.2" - } - }, - { - "package": "AutomatticAbout", - "repositoryURL": "https://github.com/automattic/AutomatticAbout-swift", - "state": { - "branch": null, - "revision": "0f784591b324e5d3ddc5771808ef8eca923e3de2", - "version": "1.1.2" - } - }, - { - "package": "DGCharts", - "repositoryURL": "https://github.com/danielgindi/Charts", - "state": { - "branch": null, - "revision": "0a229f8c914b0ec93798cee058cf75b339297513", - "version": "5.0.0" - } - }, - { - "package": "CocoaLumberjack", - "repositoryURL": "https://github.com/CocoaLumberjack/CocoaLumberjack", - "state": { - "branch": null, - "revision": "4b8714a7fb84d42393314ce897127b3939885ec3", - "version": "3.8.5" - } - }, - { - "package": "CollectionConcurrencyKit", - "repositoryURL": "https://github.com/JohnSundell/CollectionConcurrencyKit.git", - "state": { - "branch": null, - "revision": "b4f23e24b5a1bff301efc5e70871083ca029ff95", - "version": "0.2.0" - } - }, - { - "package": "ZendeskCommonUISDK", - "repositoryURL": "https://github.com/zendesk/commonui_sdk_ios", - "state": { - "branch": null, - "revision": "8729e7f4e316b46f6d33f046e663b6eedfe9955a", - "version": "9.0.1" - } - }, - { - "package": "ZendeskCoreSDK", - "repositoryURL": "https://github.com/zendesk/core_sdk_ios", - "state": { - "branch": null, - "revision": "8163d4d67f3aa8954467aa8191ee13cb4f1a2b9e", - "version": "5.0.3" - } - }, - { - "package": "CryptoSwift", - "repositoryURL": "https://github.com/krzyzanowskim/CryptoSwift.git", - "state": { - "branch": null, - "revision": "c9c3df6ab812de32bae61fc0cd1bf6d45170ebf0", - "version": "1.8.2" - } - }, - { - "package": "CwlCatchException", - "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", - "state": { - "branch": null, - "revision": "35f9e770f54ce62dd8526470f14c6e137cef3eea", - "version": "2.1.1" - } - }, - { - "package": "CwlPreconditionTesting", - "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", - "state": { - "branch": null, - "revision": "c21f7bab5ca8eee0a9998bbd17ca1d0eb45d4688", - "version": "2.1.0" - } - }, - { - "package": "Down", - "repositoryURL": "https://github.com/johnxnguyen/Down", - "state": { - "branch": "master", - "revision": "e754ab1c80920dd51a8e08290c912ac1c2ac8b58", - "version": null - } - }, - { - "package": "Gifu", - "repositoryURL": "https://github.com/kaishin/Gifu", - "state": { - "branch": null, - "revision": "82da0086dea14ca9afc9801234ad8dc4cd9e2738", - "version": "3.4.1" - } - }, - { - "package": "Gridicons", - "repositoryURL": "https://github.com/Automattic/Gridicons-iOS", - "state": { - "branch": "develop", - "revision": "79c7e58c81ea5cfad954974b1982b9ed9a0a48ad", - "version": null - } - }, - { - "package": "JTAppleCalendar", - "repositoryURL": "https://github.com/patchthecode/JTAppleCalendar", - "state": { - "branch": null, - "revision": "718f0ab68ba0fcd2bc134f6e9d30edc1b9b038e1", - "version": "8.0.5" - } - }, - { - "package": "Lottie", - "repositoryURL": "https://github.com/airbnb/lottie-ios.git", - "state": { - "branch": null, - "revision": "f522990668c2f9132323a2e68d924c7dcb9130b4", - "version": "4.4.0" - } - }, - { - "package": "ZendeskMessagingSDK", - "repositoryURL": "https://github.com/zendesk/messaging_sdk_ios", - "state": { - "branch": null, - "revision": "4dbb16d26b90452c1d41cba8e8dc81a1bcea7f1e", - "version": "6.0.1" - } - }, - { - "package": "ZendeskMessagingAPISDK", - "repositoryURL": "https://github.com/zendesk/messagingapi_sdk_ios", - "state": { - "branch": null, - "revision": "2f21e014a1f284edf484faf39b2b6fe377ec8c64", - "version": "6.0.0" - } - }, - { - "package": "Nimble", - "repositoryURL": "https://github.com/Quick/Nimble", - "state": { - "branch": null, - "revision": "1f3bde57bde12f5e7b07909848c071e9b73d6edc", - "version": "10.0.0" - } - }, - { - "package": "NSObject-SafeExpectations", - "repositoryURL": "https://github.com/wordpress-mobile/NSObject-SafeExpectations", - "state": { - "branch": null, - "revision": "eb84d994ab13a153888a19e5b99f536aafa77434", - "version": "0.0.6" - } - }, - { - "package": "NSURL+IDN", - "repositoryURL": "https://github.com/wordpress-mobile/NSURL-IDN", - "state": { - "branch": "trunk", - "revision": "50a0ffd324bb27ef76a5ca685b990307528dd9ea", - "version": null - } - }, - { - "package": "OCMock", - "repositoryURL": "https://github.com/erikdoe/ocmock", - "state": { - "branch": null, - "revision": "2c0bfd373289f4a7716db5d6db471640f91a6507", - "version": null - } - }, - { - "package": "OHHTTPStubs", - "repositoryURL": "https://github.com/AliSoftware/OHHTTPStubs", - "state": { - "branch": null, - "revision": "12f19662426d0434d6c330c6974d53e2eb10ecd9", - "version": "9.1.0" - } - }, - { - "package": "Reachability", - "repositoryURL": "https://github.com/tonymillion/Reachability", - "state": { - "branch": null, - "revision": "3e16ffa862dda39ca9c49722d9bcb68cc2ae83d5", - "version": "3.7.6" - } - }, - { - "package": "ScreenObject", - "repositoryURL": "https://github.com/Automattic/ScreenObject", - "state": { - "branch": null, - "revision": "328db56c62aab91440ec5e07cc9f7eef6e26a26e", - "version": "0.2.3" - } - }, - { - "package": "ZendeskSDKConfigurationsSDK", - "repositoryURL": "https://github.com/zendesk/sdkconfigurations_sdk_ios", - "state": { - "branch": null, - "revision": "fec7b8bf3d85cb895a0820a2f9d102f9d6ba3070", - "version": "4.0.0" - } - }, - { - "package": "Sentry", - "repositoryURL": "https://github.com/getsentry/sentry-cocoa", - "state": { - "branch": null, - "revision": "08862789e1cbba7a9561bed69832a9306f339cd3", - "version": "8.29.1" - } - }, - { - "package": "SourceKitten", - "repositoryURL": "https://github.com/jpsim/SourceKitten.git", - "state": { - "branch": null, - "revision": "b6dc09ee51dfb0c66e042d2328c017483a1a5d56", - "version": "0.34.1" - } - }, - { - "package": "Starscream", - "repositoryURL": "https://github.com/daltoniam/Starscream", - "state": { - "branch": null, - "revision": "c6bfd1af48efcc9a9ad203665db12375ba6b145a", - "version": "4.0.8" - } - }, - { - "package": "ZendeskSupportProvidersSDK", - "repositoryURL": "https://github.com/zendesk/support_providers_sdk_ios", - "state": { - "branch": null, - "revision": "16da780d8a0aa905b3935eee7836b9a0ee276597", - "version": "8.0.3" - } - }, - { - "package": "ZendeskSupportSDK", - "repositoryURL": "https://github.com/zendesk/support_sdk_ios", - "state": { - "branch": null, - "revision": "44cf26111bf0bc608a2474578b3d506793eef483", - "version": "8.0.3" - } - }, - { - "package": "SVProgressHUD", - "repositoryURL": "https://github.com/SVProgressHUD/SVProgressHUD", - "state": { - "branch": null, - "revision": "c33f7c775ba7feea6047a1fc3257f2e5863b44f7", - "version": "2.3.1" - } - }, - { - "package": "swift-argument-parser", - "repositoryURL": "https://github.com/apple/swift-argument-parser.git", - "state": { - "branch": null, - "revision": "8f4d2753f0e4778c76d5f05ad16c74f707390531", - "version": "1.2.3" - } - }, - { - "package": "swift-log", - "repositoryURL": "https://github.com/apple/swift-log", - "state": { - "branch": null, - "revision": "e97a6fcb1ab07462881ac165fdbb37f067e205d5", - "version": "1.5.4" - } - }, - { - "package": "Sodium", - "repositoryURL": "https://github.com/jedisct1/swift-sodium", - "state": { - "branch": null, - "revision": "4f9164a0a2c9a6a7ff53a2833d54a5c79c957342", - "version": "0.9.1" - } - }, - { - "package": "swift-syntax", - "repositoryURL": "https://github.com/apple/swift-syntax.git", - "state": { - "branch": null, - "revision": "6ad4ea24b01559dde0773e3d091f1b9e36175036", - "version": "509.0.2" - } - }, - { - "package": "SwiftLint", - "repositoryURL": "https://github.com/realm/SwiftLint", - "state": { - "branch": null, - "revision": "f17a4f9dfb6a6afb0408426354e4180daaf49cee", - "version": "0.54.0" - } - }, - { - "package": "SwiftSoup", - "repositoryURL": "https://github.com/scinfu/SwiftSoup.git", - "state": { - "branch": null, - "revision": "1d39e56d364cba79ce43b341f9661b534cccb18d", - "version": "2.7.1" - } - }, - { - "package": "SwiftyTextTable", - "repositoryURL": "https://github.com/scottrhoyt/SwiftyTextTable.git", - "state": { - "branch": null, - "revision": "c6df6cf533d120716bff38f8ff9885e1ce2a4ac3", - "version": "0.9.0" - } - }, - { - "package": "SWXMLHash", - "repositoryURL": "https://github.com/drmohundro/SWXMLHash.git", - "state": { - "branch": null, - "revision": "a853604c9e9a83ad9954c7e3d2a565273982471f", - "version": "7.0.2" - } - }, { "package": "BuildkiteTestCollector", "repositoryURL": "https://github.com/buildkite/test-collector-swift", @@ -387,60 +9,6 @@ "revision": "77c7f492f5c1c9ca159f73d18f56bbd1186390b0", "version": "0.3.0" } - }, - { - "package": "UIDeviceIdentifier", - "repositoryURL": "https://github.com/squarefrog/UIDeviceIdentifier", - "state": { - "branch": null, - "revision": "4699794b08bb79a4d77785edaba6ea739e298e4b", - "version": "2.3.0" - } - }, - { - "package": "WordPressUI", - "repositoryURL": "https://github.com/wordpress-mobile/WordPressUI-iOS", - "state": { - "branch": "kean-patch-1", - "revision": "e848400c7af850e0668b36a4e566a2c71e4e0d7b", - "version": null - } - }, - { - "package": "wpxmlrpc", - "repositoryURL": "https://github.com/wordpress-mobile/wpxmlrpc", - "state": { - "branch": null, - "revision": "bfc413d336bdeaab89e62dc483380baa99b2257e", - "version": "0.10.0" - } - }, - { - "package": "XCUITestHelpers", - "repositoryURL": "https://github.com/Automattic/XCUITestHelpers", - "state": { - "branch": null, - "revision": "5179cb69d58b90761cc713bdee7740c4889d3295", - "version": "0.4.0" - } - }, - { - "package": "Yams", - "repositoryURL": "https://github.com/jpsim/Yams.git", - "state": { - "branch": null, - "revision": "9234124cff5e22e178988c18d8b95a8ae8007f76", - "version": "5.1.2" - } - }, - { - "package": "ZIPFoundation", - "repositoryURL": "https://github.com/weichsel/ZIPFoundation", - "state": { - "branch": null, - "revision": "02b6abe5f6eef7e3cbd5f247c5cc24e246efcfe0", - "version": "0.9.19" - } } ] }, diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 9daf2f9a5c53..0e5635e22fd8 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -918,7 +918,6 @@ 24C69AC22612467C00312D9A /* UserSettingsTestsObjc.m in Sources */ = {isa = PBXBuildFile; fileRef = 24C69AC12612467C00312D9A /* UserSettingsTestsObjc.m */; }; 24CE2EB1258D687A0000C297 /* WordPressFlux in Frameworks */ = {isa = PBXBuildFile; productRef = 24CE2EB0258D687A0000C297 /* WordPressFlux */; }; 24F3789825E6E62100A27BB7 /* NSManagedObject+Lookup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24F3789725E6E62100A27BB7 /* NSManagedObject+Lookup.swift */; }; - 2611CC62A62F9E6BC25350FE /* Pods_WordPressScreenshotGeneration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AB390AA9C94F16E78184E9D1 /* Pods_WordPressScreenshotGeneration.framework */; }; 2906F812110CDA8900169D56 /* EditCommentViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2906F810110CDA8900169D56 /* EditCommentViewController.m */; }; 296890780FE971DC00770264 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 296890770FE971DC00770264 /* Security.framework */; }; 2F08ECFC2283A4FB000F8E11 /* PostService+UnattachedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F08ECFB2283A4FB000F8E11 /* PostService+UnattachedMedia.swift */; }; @@ -984,8 +983,6 @@ 32E1BFFD24AB9D28007A08F0 /* ReaderSelectInterestsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E1BFFB24AB9D28007A08F0 /* ReaderSelectInterestsViewController.swift */; }; 32E1BFFE24AB9D28007A08F0 /* ReaderSelectInterestsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 32E1BFFC24AB9D28007A08F0 /* ReaderSelectInterestsViewController.xib */; }; 32F2566025012D3F006B8BC4 /* LinearGradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F2565F25012D3F006B8BC4 /* LinearGradientView.swift */; }; - 35BBACD2917117A95B6F3046 /* Pods_JetpackStatsWidgets.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26AC7B7EB4454FA8E268624D /* Pods_JetpackStatsWidgets.framework */; }; - 365FDEB78647AB79DDCC4533 /* Pods_WordPressUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DCE7542239FBC709B90EA85 /* Pods_WordPressUITests.framework */; }; 37022D931981C19000F322B7 /* VerticallyStackedButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 37022D901981BF9200F322B7 /* VerticallyStackedButton.m */; }; 374CB16215B93C0800DD0EBC /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 374CB16115B93C0800DD0EBC /* AudioToolbox.framework */; }; 37EAAF4D1A11799A006D6306 /* CircularImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37EAAF4C1A11799A006D6306 /* CircularImageView.swift */; }; @@ -2495,7 +2492,6 @@ 4AFB1A812A9C08CE007CE165 /* StoppableProgressIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AFB1A802A9C08CE007CE165 /* StoppableProgressIndicatorView.swift */; }; 4AFB1A822A9C08CE007CE165 /* StoppableProgressIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AFB1A802A9C08CE007CE165 /* StoppableProgressIndicatorView.swift */; }; 4AFB8FBF2824999500A2F4B2 /* ContextManager+Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AFB8FBE2824999400A2F4B2 /* ContextManager+Helpers.swift */; }; - 4B2DD0F29CD6AC353C056D41 /* Pods_WordPressUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DCE7542239FBC709B90EA85 /* Pods_WordPressUITests.framework */; }; 4BB2296498BE66D515E3D610 /* Pods_JetpackShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23052F0F1F9B2503E33D0A26 /* Pods_JetpackShareExtension.framework */; }; 4D520D4F22972BC9002F5924 /* acknowledgements.html in Resources */ = {isa = PBXBuildFile; fileRef = 4D520D4E22972BC9002F5924 /* acknowledgements.html */; }; 56885C912A7D15930027C78F /* HTMLEditorScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56885C902A7D15930027C78F /* HTMLEditorScreen.swift */; }; @@ -4092,7 +4088,6 @@ C3FF78E928354A91008FA600 /* SiteDesignSectionLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3FF78E728354A91008FA600 /* SiteDesignSectionLoader.swift */; }; C533CF350E6D3ADA000C3DE8 /* CommentsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C533CF340E6D3ADA000C3DE8 /* CommentsViewController.m */; }; C56636E91868D0CE00226AAB /* StatsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C56636E71868D0CE00226AAB /* StatsViewController.m */; }; - C649C66318E8B5EF92B8F196 /* Pods_JetpackIntents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D42A30853435E728881904E8 /* Pods_JetpackIntents.framework */; }; C700F9D2257FD63A0090938E /* JetpackScanViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C700F9D0257FD63A0090938E /* JetpackScanViewController.xib */; }; C700F9EE257FD64E0090938E /* JetpackScanViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C700F9ED257FD64E0090938E /* JetpackScanViewController.swift */; }; C700FAB2258020DB0090938E /* JetpackScanThreatCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C700FAB0258020DB0090938E /* JetpackScanThreatCell.swift */; }; @@ -4381,7 +4376,6 @@ DC8F61FC2703321F0087AC5D /* TimeZoneFormatterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC8F61FB2703321F0087AC5D /* TimeZoneFormatterTests.swift */; }; DC9AF769285DF8A300EA2A0D /* StatsFollowersChartViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9AF768285DF8A300EA2A0D /* StatsFollowersChartViewModel.swift */; }; DC9AF76A285DF8A300EA2A0D /* StatsFollowersChartViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC9AF768285DF8A300EA2A0D /* StatsFollowersChartViewModel.swift */; }; - DCAD9FCC94B311DCE8988D91 /* Pods_JetpackNotificationServiceExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 23F18781EEBE5551D6B4992C /* Pods_JetpackNotificationServiceExtension.framework */; }; DCCDF75B283BEFEA00AA347E /* SiteStatsInsightsDetailsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCCDF75A283BEFEA00AA347E /* SiteStatsInsightsDetailsTableViewController.swift */; }; DCCDF75C283BEFEA00AA347E /* SiteStatsInsightsDetailsTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCCDF75A283BEFEA00AA347E /* SiteStatsInsightsDetailsTableViewController.swift */; }; DCCDF75E283BF02D00AA347E /* SiteStatsInsightsDetailsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCCDF75D283BF02D00AA347E /* SiteStatsInsightsDetailsViewModel.swift */; }; @@ -4393,7 +4387,6 @@ DCF892D0282FA42A00BB71E1 /* SiteStatsImmuTableRowsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF892CF282FA42A00BB71E1 /* SiteStatsImmuTableRowsTests.swift */; }; DCF892D2282FA45500BB71E1 /* StatsMockDataLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF892D1282FA45500BB71E1 /* StatsMockDataLoader.swift */; }; DCFC6A29292523D20062D65B /* SiteStatsPinnedItemStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFC6A28292523D20062D65B /* SiteStatsPinnedItemStoreTests.swift */; }; - DF6D9E10C4CEE05331B4DAE5 /* Pods_WordPressNotificationServiceExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3B8D9C4DCD93C57C2B98CDC /* Pods_WordPressNotificationServiceExtension.framework */; }; E100C6BB1741473000AE48D8 /* WordPress-11-12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = E100C6BA1741472F00AE48D8 /* WordPress-11-12.xcmappingmodel */; }; E10290741F30615A00DAC588 /* Role.swift in Sources */ = {isa = PBXBuildFile; fileRef = E10290731F30615A00DAC588 /* Role.swift */; }; E102B7901E714F24007928E8 /* RecentSitesService.swift in Sources */ = {isa = PBXBuildFile; fileRef = E102B78F1E714F24007928E8 /* RecentSitesService.swift */; }; @@ -7829,7 +7822,6 @@ 17F7C24822770B68002E5C2E /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; 17FC0031264D728E00FCBD37 /* SharingServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharingServiceTests.swift; sourceTree = ""; }; 17FCA6801FD84B4600DBA9C8 /* NoticeStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoticeStore.swift; sourceTree = ""; }; - 18B1A53E374E22C490A08F23 /* Pods-JetpackStatsWidgets.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.debug.xcconfig"; sourceTree = ""; }; 1A433B1C2254CBEE00AE7910 /* WordPressComRestApi+Defaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WordPressComRestApi+Defaults.swift"; sourceTree = ""; }; 1ABA150722AE5F870039311A /* WordPressUIBundleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressUIBundleTests.swift; sourceTree = ""; }; 1BC96E982E9B1A6DD86AF491 /* Pods-WordPressShareExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressShareExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressShareExtension/Pods-WordPressShareExtension.release-alpha.xcconfig"; sourceTree = ""; }; @@ -7855,7 +7847,6 @@ 1E9D544C23C4C56300F6A9E0 /* GutenbergRollout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergRollout.swift; sourceTree = ""; }; 213A62FF811EBDB969FA7669 /* Pods_WordPressShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 23052F0F1F9B2503E33D0A26 /* Pods_JetpackShareExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackShareExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 23F18781EEBE5551D6B4992C /* Pods_JetpackNotificationServiceExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackNotificationServiceExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 241E60B225CA0D2900912CEB /* UserSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSettings.swift; sourceTree = ""; }; 2420BEF025D8DAB300966129 /* Blog+Lookup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Blog+Lookup.swift"; sourceTree = ""; }; 24350E7C264DB76E009BB2B6 /* Jetpack.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Jetpack.debug.xcconfig; sourceTree = ""; }; @@ -7913,7 +7904,6 @@ 24C69A8A2612421900312D9A /* UserSettingsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserSettingsTests.swift; sourceTree = ""; }; 24C69AC12612467C00312D9A /* UserSettingsTestsObjc.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserSettingsTestsObjc.m; sourceTree = ""; }; 24F3789725E6E62100A27BB7 /* NSManagedObject+Lookup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSManagedObject+Lookup.swift"; sourceTree = ""; }; - 26AC7B7EB4454FA8E268624D /* Pods_JetpackStatsWidgets.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackStatsWidgets.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 28A0AAE50D9B0CCF005BE974 /* WordPress_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WordPress_Prefix.pch; sourceTree = ""; }; 2906F80F110CDA8900169D56 /* EditCommentViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EditCommentViewController.h; sourceTree = ""; }; 2906F810110CDA8900169D56 /* EditCommentViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EditCommentViewController.m; sourceTree = ""; }; @@ -7997,14 +7987,10 @@ 32E1BFFB24AB9D28007A08F0 /* ReaderSelectInterestsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderSelectInterestsViewController.swift; sourceTree = ""; }; 32E1BFFC24AB9D28007A08F0 /* ReaderSelectInterestsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderSelectInterestsViewController.xib; sourceTree = ""; }; 32F2565F25012D3F006B8BC4 /* LinearGradientView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinearGradientView.swift; sourceTree = ""; }; - 33D5016BDA00B45DFCAF3818 /* Pods-WordPressNotificationServiceExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressNotificationServiceExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension.release-internal.xcconfig"; sourceTree = ""; }; - 33E5165A9AB08C676380FA34 /* Pods-JetpackNotificationServiceExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackNotificationServiceExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackNotificationServiceExtension/Pods-JetpackNotificationServiceExtension.debug.xcconfig"; sourceTree = ""; }; 37022D8F1981BF9200F322B7 /* VerticallyStackedButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VerticallyStackedButton.h; sourceTree = ""; }; 37022D901981BF9200F322B7 /* VerticallyStackedButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VerticallyStackedButton.m; sourceTree = ""; }; 374CB16115B93C0800DD0EBC /* AudioToolbox.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; 37EAAF4C1A11799A006D6306 /* CircularImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircularImageView.swift; sourceTree = ""; }; - 3AB6A3B516053EA8D0BC3B17 /* Pods-JetpackStatsWidgets.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.release-alpha.xcconfig"; sourceTree = ""; }; - 3C8DE270EF0498A2129349B0 /* Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackNotificationServiceExtension/Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig"; sourceTree = ""; }; 3F03F2BC2B45041E00A9CE99 /* XCUIElement+TapUntil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCUIElement+TapUntil.swift"; sourceTree = ""; }; 3F09CCA72428FF3300D00A8C /* ReaderTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderTabViewController.swift; sourceTree = ""; }; 3F09CCA92428FF8300D00A8C /* ReaderTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderTabView.swift; sourceTree = ""; }; @@ -8228,7 +8214,6 @@ 437542E21DD4E19E00D6B727 /* EditPostViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditPostViewController.swift; sourceTree = ""; }; 4388FEFD20A4E0B900783948 /* NotificationsViewController+AppRatings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationsViewController+AppRatings.swift"; sourceTree = ""; }; 4388FEFF20A4E19C00783948 /* NotificationsViewController+PushPrimer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationsViewController+PushPrimer.swift"; sourceTree = ""; }; - 4391027D80CFEDF45B8712A3 /* Pods-JetpackIntents.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.release-internal.xcconfig"; sourceTree = ""; }; 4395A1582106389800844E8E /* QuickStartTours.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickStartTours.swift; sourceTree = ""; }; 4395A15C2106718900844E8E /* QuickStartChecklistCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickStartChecklistCell.swift; sourceTree = ""; }; 439F4F332196537500F8D0C7 /* RevisionDiffViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RevisionDiffViewController.swift; sourceTree = ""; }; @@ -8302,7 +8287,6 @@ 46F584B72624E6380010A723 /* BlockEditorSettings+GutenbergEditorSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BlockEditorSettings+GutenbergEditorSettings.swift"; sourceTree = ""; }; 46F58500262605930010A723 /* BlockEditorSettingsServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockEditorSettingsServiceTests.swift; sourceTree = ""; }; 46F84612185A8B7E009D0DA5 /* PostContentProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostContentProvider.h; sourceTree = ""; }; - 49E3445F1B568603958DA79D /* Pods-JetpackNotificationServiceExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackNotificationServiceExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackNotificationServiceExtension/Pods-JetpackNotificationServiceExtension.release.xcconfig"; sourceTree = ""; }; 4A0274892C22594100290D8B /* WordPressShared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressShared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4A02748C2C22594B00290D8B /* WordPressKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4A02748F2C22595600290D8B /* WordPressUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -9336,8 +9320,6 @@ 4D520D4E22972BC9002F5924 /* acknowledgements.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = acknowledgements.html; path = "../Pods/Target Support Files/Pods-Apps-WordPress/acknowledgements.html"; sourceTree = ""; }; 4D670B9448DF9991366CF42D /* Pods_JetpackStatsWidgets.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackStatsWidgets.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 51A5F017948878F7E26979A0 /* Pods-Apps-WordPress.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.release.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.release.xcconfig"; sourceTree = ""; }; - 528B9926294302CD0A4EB5C4 /* Pods-WordPressScreenshotGeneration.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressScreenshotGeneration.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressScreenshotGeneration/Pods-WordPressScreenshotGeneration.release-alpha.xcconfig"; sourceTree = ""; }; - 549D51B99FF59CBE21A37CBF /* Pods-JetpackIntents.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.release.xcconfig"; sourceTree = ""; }; 56885C902A7D15930027C78F /* HTMLEditorScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTMLEditorScreen.swift; sourceTree = ""; }; 56FEDB6A28783D8F00E1EA93 /* WordPress 145.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 145.xcdatamodel"; sourceTree = ""; }; 5703A4C522C003DC0028A343 /* WPStyleGuide+Posts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Posts.swift"; sourceTree = ""; }; @@ -9390,7 +9372,6 @@ 59E1D46D1CEF77B500126697 /* Page+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Page+CoreDataProperties.swift"; sourceTree = ""; }; 59ECF87A1CB7061D00E68F25 /* PostSharingControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = PostSharingControllerTests.swift; path = Posts/PostSharingControllerTests.swift; sourceTree = ""; }; 59FBD5611B5684F300734466 /* ThemeServiceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ThemeServiceTests.m; sourceTree = ""; }; - 5C1CEB34870A8BA1ED1E502B /* Pods-WordPressUITests.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressUITests.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressUITests/Pods-WordPressUITests.release-alpha.xcconfig"; sourceTree = ""; }; 5D1181E61B4D6DEB003F3084 /* WPStyleGuide+Reader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Reader.swift"; sourceTree = ""; }; 5D146EB9189857ED0068FDC6 /* FeaturedImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FeaturedImageViewController.h; sourceTree = ""; usesTabs = 0; }; 5D146EBA189857ED0068FDC6 /* FeaturedImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FeaturedImageViewController.m; sourceTree = ""; usesTabs = 0; }; @@ -9546,7 +9527,6 @@ 73F6DD43212C714F00CE447D /* RichNotificationViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RichNotificationViewModel.swift; sourceTree = ""; }; 73F76E1D222851E300FDDAD2 /* Charts+AxisFormatters.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Charts+AxisFormatters.swift"; sourceTree = ""; }; 73FEC870220B358500CEF791 /* WPAccount+RestApi.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WPAccount+RestApi.swift"; sourceTree = ""; }; - 73FEFF1991AE9912FB2DA9BC /* Pods-WordPressNotificationServiceExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressNotificationServiceExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension.release.xcconfig"; sourceTree = ""; }; 73FF702F221F43CD00541798 /* StatsBarChartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsBarChartView.swift; sourceTree = ""; }; 73FF7031221F469100541798 /* Charts+Support.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Charts+Support.swift"; sourceTree = ""; }; 740516882087B73400252FD0 /* SearchableActivityConvertable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchableActivityConvertable.swift; sourceTree = ""; }; @@ -9940,7 +9920,6 @@ 85DA8C4318F3F29A0074C8A4 /* WPAnalyticsTrackerWPCom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPAnalyticsTrackerWPCom.m; sourceTree = ""; }; 85ED98AA17DFB17200090D0B /* iTunesArtwork@2x */ = {isa = PBXFileReference; lastKnownFileType = file; path = "iTunesArtwork@2x"; sourceTree = ""; }; 85F8E19C1B018698000859BB /* PushAuthenticationServiceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushAuthenticationServiceTests.swift; sourceTree = ""; }; - 87A8AC8362510EB42708E5B3 /* Pods-JetpackIntents.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.debug.xcconfig"; sourceTree = ""; }; 8A21014FBE43ADE551F4ECB4 /* Pods-JetpackIntents.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.release-alpha.xcconfig"; sourceTree = ""; }; 8B05D29023A9417E0063B9AA /* WPMediaEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WPMediaEditor.swift; sourceTree = ""; }; 8B05D29223AA572A0063B9AA /* GutenbergMediaEditorImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergMediaEditorImage.swift; sourceTree = ""; }; @@ -9983,7 +9962,6 @@ 8B8E50B527A4692000C89979 /* DashboardPostListErrorCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardPostListErrorCell.swift; sourceTree = ""; }; 8B92D69527CD51FA001F5371 /* DashboardGhostCardCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashboardGhostCardCell.swift; sourceTree = ""; }; 8B93412E257029F50097D0AC /* FilterChipButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterChipButton.swift; sourceTree = ""; }; - 8B9E15DAF3E1A369E9BE3407 /* Pods-WordPressUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressUITests.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressUITests/Pods-WordPressUITests.release.xcconfig"; sourceTree = ""; }; 8BA125EA27D8F5E4008B779F /* UIView+PinSubviewPriority.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+PinSubviewPriority.swift"; sourceTree = ""; }; 8BA77BCA2482C52A00E1EBBF /* ReaderCardDiscoverAttributionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderCardDiscoverAttributionView.xib; sourceTree = ""; }; 8BA77BCC248340CE00E1EBBF /* ReaderDetailToolbar.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderDetailToolbar.xib; sourceTree = ""; }; @@ -10376,11 +10354,9 @@ A20971B519B0BC390058F395 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/InfoPlist.strings"; sourceTree = ""; }; A20971B719B0BC570058F395 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; A20971B819B0BC570058F395 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/InfoPlist.strings"; sourceTree = ""; }; - A27DA63A5ECD1D0262C589EC /* Pods-WordPressNotificationServiceExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressNotificationServiceExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension.debug.xcconfig"; sourceTree = ""; }; A284044518BFE7F300D982B6 /* WordPress 15.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 15.xcdatamodel"; sourceTree = ""; }; AB2211D125ED68E300BF72FC /* CommentServiceRemoteFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommentServiceRemoteFactory.swift; sourceTree = ""; }; AB2211F325ED6E7A00BF72FC /* CommentServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommentServiceTests.swift; sourceTree = ""; }; - AB390AA9C94F16E78184E9D1 /* Pods_WordPressScreenshotGeneration.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressScreenshotGeneration.framework; sourceTree = BUILT_PRODUCTS_DIR; }; AB758D9D25EFDF9C00961C0B /* LikesListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LikesListController.swift; sourceTree = ""; }; AC68C9C928E5DF14009030A9 /* NotificationsViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationsViewControllerTests.swift; sourceTree = ""; }; ACACE3AD28D729FA000992F9 /* NoResultsViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoResultsViewControllerTests.swift; sourceTree = ""; }; @@ -10421,9 +10397,6 @@ B0DDC2EB252F7C4F002BAFB3 /* WordPress 100.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 100.xcdatamodel"; sourceTree = ""; }; B0DE91B42AF9778200D51A02 /* DomainSetupNoticeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainSetupNoticeView.swift; sourceTree = ""; }; B0F2EFBE259378E600C7EB6D /* SiteSuggestionService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteSuggestionService.swift; sourceTree = ""; }; - B124AFFFB3F0204107FD33D0 /* Pods-JetpackIntents.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.release-alpha.xcconfig"; sourceTree = ""; }; - B3694C30079615C927D26E9F /* Pods-JetpackStatsWidgets.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.release.xcconfig"; sourceTree = ""; }; - B4CAFF307BEC7FD77CCF573C /* Pods-JetpackStatsWidgets.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.release-internal.xcconfig"; sourceTree = ""; }; B5015C571D4FDBB300C9449E /* NotificationActionsService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationActionsService.swift; sourceTree = ""; }; B50248AE1C96FF6200AFBDED /* WPStyleGuide+Share.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "WPStyleGuide+Share.swift"; path = "WordPressShareExtension/WPStyleGuide+Share.swift"; sourceTree = SOURCE_ROOT; }; B50248B81C96FFB000AFBDED /* WordPressShare-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "WordPressShare-Bridging-Header.h"; path = "WordPressShareExtension/WordPressShare-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; @@ -10528,7 +10501,6 @@ B5AEEC751ACACFDA008BF2A4 /* notifications-like.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "notifications-like.json"; sourceTree = ""; }; B5AEEC771ACACFDA008BF2A4 /* notifications-new-follower.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "notifications-new-follower.json"; sourceTree = ""; }; B5AEEC781ACACFDA008BF2A4 /* notifications-replied-comment.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "notifications-replied-comment.json"; sourceTree = ""; }; - B5AF0C63305888C3424155D6 /* Pods-WordPressScreenshotGeneration.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressScreenshotGeneration.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressScreenshotGeneration/Pods-WordPressScreenshotGeneration.release-internal.xcconfig"; sourceTree = ""; }; B5B410B51B1772B000CFCF8D /* NavigationTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationTitleView.swift; sourceTree = ""; }; B5B56D3019AFB68800B4E29B /* WPStyleGuide+Reply.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Reply.swift"; sourceTree = ""; }; B5B56D3119AFB68800B4E29B /* WPStyleGuide+Notifications.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "WPStyleGuide+Notifications.swift"; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; @@ -10571,7 +10543,6 @@ B5FDF9F220D842D2006D14E3 /* AztecNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AztecNavigationController.swift; sourceTree = ""; }; B5FF3BE61CAD881100C1D597 /* ImageCropOverlayView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageCropOverlayView.swift; sourceTree = ""; }; B7556D1D8CFA5CEAEAC481B9 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - B8EED8FA87452C1FD113FD04 /* Pods-WordPressUITests.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressUITests.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressUITests/Pods-WordPressUITests.release-internal.xcconfig"; sourceTree = ""; }; B921F5DD9A1F257C792EC225 /* Pods_WordPressTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressTest.framework; sourceTree = BUILT_PRODUCTS_DIR; }; BBA98A42A5503D734AC9C936 /* Pods-Apps-WordPress.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.release-internal.xcconfig"; sourceTree = ""; }; BE1071FB1BC75E7400906AFF /* WPStyleGuide+Blog.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Blog.swift"; sourceTree = ""; }; @@ -10729,7 +10700,6 @@ C8567495243F3D37001A995E /* TenorResultsPageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TenorResultsPageTests.swift; sourceTree = ""; }; C8567497243F41CA001A995E /* MockTenorService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockTenorService.swift; sourceTree = ""; }; C8567499243F4292001A995E /* TenorMockDataHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TenorMockDataHelper.swift; sourceTree = ""; }; - C8FC2DE857126670AE377B5D /* Pods-WordPressScreenshotGeneration.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressScreenshotGeneration.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressScreenshotGeneration/Pods-WordPressScreenshotGeneration.debug.xcconfig"; sourceTree = ""; }; C9264D275F6288F66C33D2CE /* Pods-WordPressTest.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.release-internal.xcconfig"; sourceTree = ""; }; C94C0B1A25DCFA0100F2F69B /* FilterableCategoriesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterableCategoriesViewController.swift; sourceTree = ""; }; C99B039B2602F3CB00CA71EB /* WordPress 117.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 117.xcdatamodel"; sourceTree = ""; }; @@ -10751,7 +10721,6 @@ CB1DAFB7DE085F2FF0314622 /* Pods-WordPressShareExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressShareExtension.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressShareExtension/Pods-WordPressShareExtension.debug.xcconfig"; sourceTree = ""; }; CB1FD8D926E605CF00EDAF06 /* Extensions 4.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "Extensions 4.xcdatamodel"; sourceTree = ""; }; CB48172926E0D93D008C2D9B /* SharePostTypePickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharePostTypePickerViewController.swift; sourceTree = ""; }; - CB72288DBD93471DA0AD878A /* Pods-WordPressUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressUITests.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressUITests/Pods-WordPressUITests.debug.xcconfig"; sourceTree = ""; }; CBF6201226E8FB520061A1F8 /* RemotePost+ShareData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RemotePost+ShareData.swift"; sourceTree = ""; }; CC19BE05223FECAC00CAB3E1 /* EditorPostSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditorPostSettings.swift; sourceTree = ""; }; CC24E5F01577DBC300A6D5B5 /* AddressBook.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; }; @@ -10789,9 +10758,6 @@ CEBD3EA90FF1BA3B00C1396E /* Blog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Blog.h; sourceTree = ""; }; CEBD3EAA0FF1BA3B00C1396E /* Blog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Blog.m; sourceTree = ""; }; CECEEB542823164800A28ADE /* MediaCacheSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaCacheSettingsViewController.swift; sourceTree = ""; }; - D01FA8A28AD63D2600800134 /* Pods-JetpackNotificationServiceExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackNotificationServiceExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackNotificationServiceExtension/Pods-JetpackNotificationServiceExtension.release-internal.xcconfig"; sourceTree = ""; }; - D3B8D9C4DCD93C57C2B98CDC /* Pods_WordPressNotificationServiceExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_WordPressNotificationServiceExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D42A30853435E728881904E8 /* Pods_JetpackIntents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackIntents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D67306CD28F2440FF6B0065C /* Pods-JetpackIntents.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.debug.xcconfig"; sourceTree = ""; }; D8071630203DA23700B32FD9 /* Accessible.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Accessible.swift; sourceTree = ""; }; D809E685203F0215001AA0DE /* OldReaderPostCardCellTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OldReaderPostCardCellTests.swift; sourceTree = ""; }; @@ -10903,7 +10869,6 @@ D8E7529A2A29DC4C00E73B2D /* XCUIApplication+ScrollDownToElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCUIApplication+ScrollDownToElement.swift"; sourceTree = ""; }; D8EB1FD021900810002AE1C4 /* BlogListViewController+SiteCreation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BlogListViewController+SiteCreation.swift"; sourceTree = ""; }; DA67DF58196D8F6A005B5BC8 /* WordPress 20.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 20.xcdatamodel"; sourceTree = ""; }; - DB915AD54243A8AE0039B0C7 /* Pods-WordPressScreenshotGeneration.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressScreenshotGeneration.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressScreenshotGeneration/Pods-WordPressScreenshotGeneration.release.xcconfig"; sourceTree = ""; }; DC06DFF827BD52BE00969974 /* WeeklyRoundupBackgroundTaskTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WeeklyRoundupBackgroundTaskTests.swift; sourceTree = ""; }; DC06DFFB27BD679700969974 /* BlogTitleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogTitleTests.swift; sourceTree = ""; }; DC13DB7D293FD09F00E33561 /* StatsInsightsStoreTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatsInsightsStoreTests.swift; sourceTree = ""; }; @@ -11237,7 +11202,6 @@ EABE86602A995124004281A8 /* PHPickerScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PHPickerScreen.swift; sourceTree = ""; }; EAD08D0D29D45E23001A72F9 /* CommentsScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommentsScreen.swift; sourceTree = ""; }; EAD2BF4127594DAB00A847BB /* StatsTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatsTests.swift; sourceTree = ""; }; - EEF80689364FA9CAE10405E8 /* Pods-WordPressNotificationServiceExtension.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressNotificationServiceExtension.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension.release-alpha.xcconfig"; sourceTree = ""; }; EF379F0A70B6AC45330EE287 /* Pods-WordPressTest.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.release.xcconfig"; sourceTree = ""; }; F10465132554260600655194 /* BindableTapGestureRecognizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BindableTapGestureRecognizer.swift; sourceTree = ""; }; F10D634D26F0B66E00E46CC7 /* WordPress 133.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 133.xcdatamodel"; sourceTree = ""; }; @@ -11918,7 +11882,6 @@ 4A972D162C239F23006AE0F0 /* WordPressKit.framework in Frameworks */, 0107E0DE28F97D5000DE87DB /* SwiftUI.framework in Frameworks */, 0107E0DF28F97D5000DE87DB /* WidgetKit.framework in Frameworks */, - 35BBACD2917117A95B6F3046 /* Pods_JetpackStatsWidgets.framework in Frameworks */, 4A972D152C239F0D006AE0F0 /* CocoaLumberjackSwift in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -11928,7 +11891,6 @@ buildActionMask = 2147483647; files = ( 3F9F23252B0AE1AC00B56061 /* JetpackStatsWidgetsCore in Frameworks */, - C649C66318E8B5EF92B8F196 /* Pods_JetpackIntents.framework in Frameworks */, 4A972D0E2C239EBA006AE0F0 /* CocoaLumberjackSwift in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -12058,7 +12020,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DF6D9E10C4CEE05331B4DAE5 /* Pods_WordPressNotificationServiceExtension.framework in Frameworks */, 4A972D3F2C23A4C8006AE0F0 /* WordPressKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -12111,7 +12072,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DCAD9FCC94B311DCE8988D91 /* Pods_JetpackNotificationServiceExtension.framework in Frameworks */, 0C0DF85B2C2DB5EC00011B7D /* WordPressUI in Frameworks */, 4A972D0F2C239EED006AE0F0 /* WordPressKit.framework in Frameworks */, ); @@ -12122,7 +12082,6 @@ buildActionMask = 2147483647; files = ( 3FA640622670CE260064401E /* UITestsFoundation.framework in Frameworks */, - 2611CC62A62F9E6BC25350FE /* Pods_WordPressScreenshotGeneration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12232,8 +12191,6 @@ files = ( 3FA640612670CE210064401E /* UITestsFoundation.framework in Frameworks */, 3F3B23C42858A1D800CACE60 /* BuildkiteTestCollector in Frameworks */, - 4B2DD0F29CD6AC353C056D41 /* Pods_WordPressUITests.framework in Frameworks */, - 365FDEB78647AB79DDCC4533 /* Pods_WordPressUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -13370,7 +13327,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + 29B97314FDCFA39411CA2CEA = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -13507,7 +13464,6 @@ B7556D1D8CFA5CEAEAC481B9 /* Pods.framework */, B921F5DD9A1F257C792EC225 /* Pods_WordPressTest.framework */, 733F36052126197800988727 /* UserNotificationsUI.framework */, - AB390AA9C94F16E78184E9D1 /* Pods_WordPressScreenshotGeneration.framework */, 8DCE7542239FBC709B90EA85 /* Pods_WordPressUITests.framework */, 3F526C4D2538CF2A0069706C /* WidgetKit.framework */, 3F526C4F2538CF2A0069706C /* SwiftUI.framework */, @@ -13518,12 +13474,6 @@ 213A62FF811EBDB969FA7669 /* Pods_WordPressShareExtension.framework */, 430F7B409FE22699ADB1A724 /* Pods_JetpackDraftActionExtension.framework */, 92B40A77F0765C1E93B11727 /* Pods_WordPressDraftActionExtension.framework */, - 23F18781EEBE5551D6B4992C /* Pods_JetpackNotificationServiceExtension.framework */, - D3B8D9C4DCD93C57C2B98CDC /* Pods_WordPressNotificationServiceExtension.framework */, - 26AC7B7EB4454FA8E268624D /* Pods_JetpackStatsWidgets.framework */, - 4D670B9448DF9991366CF42D /* Pods_JetpackStatsWidgets.framework */, - D42A30853435E728881904E8 /* Pods_JetpackIntents.framework */, - A1DD7BB9C25967442493CC19 /* Pods_JetpackIntents.framework */, ); name = Frameworks; sourceTree = ""; @@ -19548,26 +19498,10 @@ EF379F0A70B6AC45330EE287 /* Pods-WordPressTest.release.xcconfig */, C9264D275F6288F66C33D2CE /* Pods-WordPressTest.release-internal.xcconfig */, 131D0EE49695795ECEDAA446 /* Pods-WordPressTest.release-alpha.xcconfig */, - A27DA63A5ECD1D0262C589EC /* Pods-WordPressNotificationServiceExtension.debug.xcconfig */, - 73FEFF1991AE9912FB2DA9BC /* Pods-WordPressNotificationServiceExtension.release.xcconfig */, - 33D5016BDA00B45DFCAF3818 /* Pods-WordPressNotificationServiceExtension.release-internal.xcconfig */, - EEF80689364FA9CAE10405E8 /* Pods-WordPressNotificationServiceExtension.release-alpha.xcconfig */, - D67306CD28F2440FF6B0065C /* Pods-JetpackIntents.debug.xcconfig */, - ADE06D6829F9044164BBA5AB /* Pods-JetpackIntents.release.xcconfig */, - A0D83E08D5D2573348DE8926 /* Pods-JetpackIntents.release-internal.xcconfig */, - 8A21014FBE43ADE551F4ECB4 /* Pods-JetpackIntents.release-alpha.xcconfig */, - E850CD4B77CF21E683104B5A /* Pods-JetpackStatsWidgets.debug.xcconfig */, - 02BF978AFC1EFE50CFD558C2 /* Pods-JetpackStatsWidgets.release.xcconfig */, - C2988A406A3D5697C2984F3E /* Pods-JetpackStatsWidgets.release-internal.xcconfig */, - 6C1B070FAD875CA331772B57 /* Pods-JetpackStatsWidgets.release-alpha.xcconfig */, 152F25D5C232985E30F56CAC /* Pods-Apps-Jetpack.debug.xcconfig */, 011A2815DB0DE7E3973CBC0E /* Pods-Apps-Jetpack.release.xcconfig */, 67832AB9D81652460A80BE66 /* Pods-Apps-Jetpack.release-internal.xcconfig */, 150B6590614A28DF9AD25491 /* Pods-Apps-Jetpack.release-alpha.xcconfig */, - C8FC2DE857126670AE377B5D /* Pods-WordPressScreenshotGeneration.debug.xcconfig */, - DB915AD54243A8AE0039B0C7 /* Pods-WordPressScreenshotGeneration.release.xcconfig */, - B5AF0C63305888C3424155D6 /* Pods-WordPressScreenshotGeneration.release-internal.xcconfig */, - 528B9926294302CD0A4EB5C4 /* Pods-WordPressScreenshotGeneration.release-alpha.xcconfig */, 09F367D2BE684EDE2E4A40E3 /* Pods-WordPressDraftActionExtension.debug.xcconfig */, 8DE205D2AC15F16289E7D21A /* Pods-WordPressDraftActionExtension.release.xcconfig */, CDA9AED50FDA27959A5CD1B2 /* Pods-WordPressDraftActionExtension.release-internal.xcconfig */, @@ -19583,23 +19517,7 @@ CE5249687F020581B14F4172 /* Pods-JetpackDraftActionExtension.release.xcconfig */, 5E48AA7F709A5B0F2318A7E3 /* Pods-JetpackDraftActionExtension.release-internal.xcconfig */, C5E82422F47D9BF7E682262B /* Pods-JetpackDraftActionExtension.release-alpha.xcconfig */, - 33E5165A9AB08C676380FA34 /* Pods-JetpackNotificationServiceExtension.debug.xcconfig */, - 49E3445F1B568603958DA79D /* Pods-JetpackNotificationServiceExtension.release.xcconfig */, - D01FA8A28AD63D2600800134 /* Pods-JetpackNotificationServiceExtension.release-internal.xcconfig */, - 3C8DE270EF0498A2129349B0 /* Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig */, F75F3A68DCE524B4BAFCE76E /* Pods-WordPressDraftActionExtension.release-alpha.xcconfig */, - 18B1A53E374E22C490A08F23 /* Pods-JetpackStatsWidgets.debug.xcconfig */, - B3694C30079615C927D26E9F /* Pods-JetpackStatsWidgets.release.xcconfig */, - B4CAFF307BEC7FD77CCF573C /* Pods-JetpackStatsWidgets.release-internal.xcconfig */, - 3AB6A3B516053EA8D0BC3B17 /* Pods-JetpackStatsWidgets.release-alpha.xcconfig */, - 87A8AC8362510EB42708E5B3 /* Pods-JetpackIntents.debug.xcconfig */, - 549D51B99FF59CBE21A37CBF /* Pods-JetpackIntents.release.xcconfig */, - 4391027D80CFEDF45B8712A3 /* Pods-JetpackIntents.release-internal.xcconfig */, - B124AFFFB3F0204107FD33D0 /* Pods-JetpackIntents.release-alpha.xcconfig */, - CB72288DBD93471DA0AD878A /* Pods-WordPressUITests.debug.xcconfig */, - 8B9E15DAF3E1A369E9BE3407 /* Pods-WordPressUITests.release.xcconfig */, - B8EED8FA87452C1FD113FD04 /* Pods-WordPressUITests.release-internal.xcconfig */, - 5C1CEB34870A8BA1ED1E502B /* Pods-WordPressUITests.release-alpha.xcconfig */, ); name = Pods; sourceTree = ""; @@ -23016,7 +22934,6 @@ isa = PBXNativeTarget; buildConfigurationList = 0107E0E528F97D5000DE87DB /* Build configuration list for PBXNativeTarget "JetpackStatsWidgets" */; buildPhases = ( - 0107E0B228F97D5000DE87DB /* [CP] Check Pods Manifest.lock */, 0107E0B328F97D5000DE87DB /* Sources */, 0107E0DD28F97D5000DE87DB /* Frameworks */, 0107E0E128F97D5000DE87DB /* Resources */, @@ -23041,7 +22958,6 @@ isa = PBXNativeTarget; buildConfigurationList = 0107E14F28FE9DB200DE87DB /* Build configuration list for PBXNativeTarget "JetpackIntents" */; buildPhases = ( - 0107E13928FE9DB200DE87DB /* [CP] Check Pods Manifest.lock */, 0107E13A28FE9DB200DE87DB /* Sources */, 0107E14A28FE9DB200DE87DB /* Frameworks */, 0107E14C28FE9DB200DE87DB /* Resources */, @@ -23256,7 +23172,6 @@ isa = PBXNativeTarget; buildConfigurationList = 7358E6C4210BD318002323EB /* Build configuration list for PBXNativeTarget "WordPressNotificationServiceExtension" */; buildPhases = ( - BAE780768320204E29A6FE5B /* [CP] Check Pods Manifest.lock */, 7358E6B4210BD318002323EB /* Sources */, 7358E6B5210BD318002323EB /* Frameworks */, 7358E6B6210BD318002323EB /* Resources */, @@ -23268,8 +23183,6 @@ 4A972D422C23A4C8006AE0F0 /* PBXTargetDependency */, ); name = WordPressNotificationServiceExtension; - packageProductDependencies = ( - ); productName = WordPressNotificationServiceExtension; productReference = 7358E6B8210BD318002323EB /* WordPressNotificationServiceExtension.appex */; productType = "com.apple.product-type.app-extension"; @@ -23364,7 +23277,6 @@ isa = PBXNativeTarget; buildConfigurationList = 80F6D04F28EE866A00953C1A /* Build configuration list for PBXNativeTarget "JetpackNotificationServiceExtension" */; buildPhases = ( - 80F6D02028EE866A00953C1A /* [CP] Check Pods Manifest.lock */, 80F6D02128EE866A00953C1A /* Sources */, 80F6D04A28EE866A00953C1A /* Frameworks */, 80F6D04C28EE866A00953C1A /* Resources */, @@ -23387,7 +23299,6 @@ isa = PBXNativeTarget; buildConfigurationList = 8511CFC21C607A7000B7CEED /* Build configuration list for PBXNativeTarget "WordPressScreenshotGeneration" */; buildPhases = ( - 2DF08408C90B90D744C56E02 /* [CP] Check Pods Manifest.lock */, 8511CFB21C607A7000B7CEED /* Sources */, 8511CFB31C607A7000B7CEED /* Frameworks */, 8511CFB41C607A7000B7CEED /* Resources */, @@ -23556,7 +23467,6 @@ isa = PBXNativeTarget; buildConfigurationList = FF27169A1CAAC87B0006E2D4 /* Build configuration list for PBXNativeTarget "WordPressUITests" */; buildPhases = ( - 37F48D4CB364EA4BCC1EAE82 /* [CP] Check Pods Manifest.lock */, FF27168B1CAAC87A0006E2D4 /* Sources */, FF27168C1CAAC87A0006E2D4 /* Frameworks */, FF27168D1CAAC87A0006E2D4 /* Resources */, @@ -23751,7 +23661,7 @@ bg, sk, ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + mainGroup = 29B97314FDCFA39411CA2CEA; packageReferences = ( 3FF1442E266F3C2400138163 /* XCRemoteSwiftPackageReference "ScreenObject" */, 3FC2C33B26C4CF0A00C6D98F /* XCRemoteSwiftPackageReference "XCUITestHelpers" */, @@ -25080,50 +24990,6 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 0107E0B228F97D5000DE87DB /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-JetpackStatsWidgets-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 0107E13928FE9DB200DE87DB /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-JetpackIntents-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 09607CE7281C9CA6002D2E5A /* [Lint] Check AppLocalizedString usage */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; @@ -25186,28 +25052,6 @@ shellScript = "$SRCROOT/../Scripts/BuildPhases/GenerateCredentials.sh\n"; showEnvVarsInLog = 0; }; - 2DF08408C90B90D744C56E02 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressScreenshotGeneration-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 36FB55DCF44141E140E108F8 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -25237,13 +25081,11 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/WordPressShared/WordPressShared.framework", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/Gutenberg.framework/Gutenberg", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressShared.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); @@ -25252,28 +25094,6 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 37F48D4CB364EA4BCC1EAE82 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressUITests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 3F32E4AE270EAF5100A33D51 /* Generate Credentials */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -25452,24 +25272,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 80F6D02028EE866A00953C1A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-JetpackNotificationServiceExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; 825F0EBF1F7EBF7C00321528 /* App Icons: Add Version For Internal Releases */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -25572,24 +25374,6 @@ shellScript = "# sh ../run-oclint.sh \nsh ../Scripts/run-oclint.sh"; showEnvVarsInLog = 0; }; - BAE780768320204E29A6FE5B /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WordPressNotificationServiceExtension-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; D880C306E1943EA76DA53078 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -25652,11 +25436,11 @@ files = ( ); inputPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", ); outputPaths = ( "", @@ -25760,13 +25544,11 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/WordPressShared/WordPressShared.framework", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/Gutenberg.framework/Gutenberg", "${PODS_XCFRAMEWORKS_BUILD_DIR}/Gutenberg/hermes.framework/hermes", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressShared.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gutenberg.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", ); @@ -25815,13 +25597,13 @@ files = ( ); inputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", ); inputPaths = ( ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", ); outputPaths = ( ); @@ -31726,7 +31508,6 @@ /* Begin XCBuildConfiguration section */ 0107E0E628F97D5000DE87DB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 18B1A53E374E22C490A08F23 /* Pods-JetpackStatsWidgets.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -31782,7 +31563,6 @@ }; 0107E0E728F97D5000DE87DB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B3694C30079615C927D26E9F /* Pods-JetpackStatsWidgets.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -31834,7 +31614,6 @@ }; 0107E0E828F97D5000DE87DB /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B4CAFF307BEC7FD77CCF573C /* Pods-JetpackStatsWidgets.release-internal.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -31887,7 +31666,6 @@ }; 0107E0E928F97D5000DE87DB /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3AB6A3B516053EA8D0BC3B17 /* Pods-JetpackStatsWidgets.release-alpha.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; @@ -31940,7 +31718,6 @@ }; 0107E15028FE9DB200DE87DB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 87A8AC8362510EB42708E5B3 /* Pods-JetpackIntents.debug.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -31993,7 +31770,6 @@ }; 0107E15128FE9DB200DE87DB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 549D51B99FF59CBE21A37CBF /* Pods-JetpackIntents.release.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -32043,7 +31819,6 @@ }; 0107E15228FE9DB200DE87DB /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4391027D80CFEDF45B8712A3 /* Pods-JetpackIntents.release-internal.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -32094,7 +31869,6 @@ }; 0107E15328FE9DB200DE87DB /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B124AFFFB3F0204107FD33D0 /* Pods-JetpackIntents.release-alpha.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -33447,7 +33221,6 @@ }; 7358E6C0210BD318002323EB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A27DA63A5ECD1D0262C589EC /* Pods-WordPressNotificationServiceExtension.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -33496,7 +33269,6 @@ }; 7358E6C1210BD318002323EB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 73FEFF1991AE9912FB2DA9BC /* Pods-WordPressNotificationServiceExtension.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -33543,7 +33315,6 @@ }; 7358E6C2210BD318002323EB /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 33D5016BDA00B45DFCAF3818 /* Pods-WordPressNotificationServiceExtension.release-internal.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -33590,7 +33361,6 @@ }; 7358E6C3210BD318002323EB /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EEF80689364FA9CAE10405E8 /* Pods-WordPressNotificationServiceExtension.release-alpha.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -34355,7 +34125,6 @@ }; 80F6D05028EE866A00953C1A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 33E5165A9AB08C676380FA34 /* Pods-JetpackNotificationServiceExtension.debug.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34405,7 +34174,6 @@ }; 80F6D05128EE866A00953C1A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 49E3445F1B568603958DA79D /* Pods-JetpackNotificationServiceExtension.release.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34453,7 +34221,6 @@ }; 80F6D05228EE866A00953C1A /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D01FA8A28AD63D2600800134 /* Pods-JetpackNotificationServiceExtension.release-internal.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34501,7 +34268,6 @@ }; 80F6D05328EE866A00953C1A /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3C8DE270EF0498A2129349B0 /* Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34549,7 +34315,6 @@ }; 8511CFBD1C607A7000B7CEED /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C8FC2DE857126670AE377B5D /* Pods-WordPressScreenshotGeneration.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -34603,7 +34368,6 @@ }; 8511CFBE1C607A7000B7CEED /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DB915AD54243A8AE0039B0C7 /* Pods-WordPressScreenshotGeneration.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -34651,7 +34415,6 @@ }; 8511CFBF1C607A7000B7CEED /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B5AF0C63305888C3424155D6 /* Pods-WordPressScreenshotGeneration.release-internal.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -34695,7 +34458,6 @@ }; 8511CFC01C607A7000B7CEED /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 528B9926294302CD0A4EB5C4 /* Pods-WordPressScreenshotGeneration.release-alpha.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = NO; @@ -36204,7 +35966,6 @@ }; FF2716961CAAC87B0006E2D4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CB72288DBD93471DA0AD878A /* Pods-WordPressUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; @@ -36258,7 +36019,6 @@ }; FF2716971CAAC87B0006E2D4 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8B9E15DAF3E1A369E9BE3407 /* Pods-WordPressUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; @@ -36306,7 +36066,6 @@ }; FF2716981CAAC87B0006E2D4 /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B8EED8FA87452C1FD113FD04 /* Pods-WordPressUITests.release-internal.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; @@ -36350,7 +36109,6 @@ }; FF2716991CAAC87B0006E2D4 /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5C1CEB34870A8BA1ED1E502B /* Pods-WordPressUITests.release-alpha.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; From d0cb65ae4a7516ab1f56b4775b2ade225e129a74 Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 12:00:47 -0400 Subject: [PATCH 03/15] Add WordPressShared using SPM --- .../xcshareddata/swiftpm/Package.resolved | 441 ++++++++++++++++++ .../Categories/WPStyleGuide+Suggestions.h | 3 +- WordPress/Classes/Models/AbstractPost.m | 2 + WordPress/Classes/Models/BasePost.h | 1 - .../Actions/ReplyToComment.swift | 2 + WordPress/Classes/Models/ReaderPost.m | 4 +- WordPress/Classes/Models/Theme.m | 2 + WordPress/Classes/Services/BlogSyncFacade.m | 3 +- WordPress/Classes/Services/CommentService.m | 1 + .../Classes/Services/MediaImageService.swift | 1 + WordPress/Classes/Services/MediaService.m | 1 - .../Services/Reader Post/ReaderPostService.h | 2 +- .../Services/Reader Post/ReaderPostService.m | 2 +- .../Classes/Services/ReaderTopicService.m | 4 +- .../System/WordPress-Bridging-Header.h | 8 - .../WPAnalyticsTrackerAutomatticTracks.h | 2 +- .../Analytics/WPAnalyticsTrackerWPCom.h | 4 +- .../Analytics/WPAnalyticsTrackerWPCom.m | 2 + .../Utility/Analytics/WPAppAnalytics.h | 4 +- .../Classes/Utility/Media/ImageLoader.swift | 1 + .../Utility/NotificationEventTracker.swift | 1 + .../Utility/Sharing/WPActivityDefaults.m | 2 +- WordPress/Classes/Utility/WPError.m | 2 +- .../Classes/Utility/WPStyleGuide+WebView.h | 4 +- .../Classes/Utility/WPTableViewHandler.m | 2 +- .../Classes/Utility/WPWebViewController.m | 3 +- WordPress/Classes/Utility/ZendeskUtils.swift | 1 + .../Activity/ActivityTableViewCell.swift | 2 +- .../Blog Details/BlogDetailsViewController.m | 2 +- .../Blog Details/SoTW 2023/SOTWCardView.swift | 3 + .../BloggingRemindersTracker.swift | 1 + .../Blog/SharingConnectionsViewController.m | 3 +- .../Blog/SharingDetailViewController.m | 3 +- .../ViewRelated/Blog/SharingViewController.m | 2 +- .../Blog/Site Settings/SettingTableViewCell.h | 3 +- .../SiteSettingsViewController+Swift.swift | 1 + .../SiteSettingsViewController.m | 2 + .../ViewRelated/Cells/ExpandableCell.swift | 2 +- .../ViewRelated/Cells/PostFeaturedImageCell.h | 2 +- .../ViewRelated/Cells/WPBlogTableViewCell.h | 3 +- .../Cells/WPProgressTableViewCell.h | 5 +- .../Cells/WPTableViewActivityCell.h | 7 +- .../Comments/CommentsViewController.m | 3 +- ...omainDetailsViewModel+RowDefinitions.swift | 1 + .../Gutenberg/EditorMediaUtility.swift | 1 + .../Gutenberg/GutenbergViewController.swift | 1 + .../FilterableCategoriesViewController.swift | 1 + .../Activity Logs/ActivityLogViewController.m | 2 + .../Me/Views/Header/MeHeaderView.m | 2 + .../Menus/MenuDetailsViewController.h | 1 - .../Menus/MenuDetailsViewController.m | 4 +- .../Menus/MenuHeaderViewController.m | 4 +- .../ViewRelated/Menus/MenuItemAbstractView.m | 3 +- .../Menus/MenuItemCheckButtonView.m | 3 +- .../Menus/MenuItemEditingFooterView.m | 3 +- .../Menus/MenuItemEditingHeaderView.m | 3 +- .../Menus/MenuItemEditingViewController.m | 4 +- .../Menus/MenuItemLinkViewController.m | 4 +- .../ViewRelated/Menus/MenuItemSourceCell.m | 4 +- .../Menus/MenuItemSourceFooterView.m | 3 +- .../Menus/MenuItemSourceHeaderView.m | 3 +- .../MenuItemSourceResultsViewController.m | 3 +- .../ViewRelated/Menus/MenuItemSourceTextBar.m | 4 +- .../Menus/MenuItemTypeSelectionView.m | 3 +- .../Classes/ViewRelated/Menus/MenuItemView.m | 3 +- .../Menus/MenuItemsViewController.m | 4 +- .../Menus/MenusSelectionDetailView.m | 3 +- .../Menus/MenusSelectionItemView.m | 2 +- .../ViewRelated/Menus/MenusSelectionView.m | 3 +- .../ViewRelated/Menus/MenusViewController.m | 4 +- .../ReplyTextView/ReplyTextView.swift | 2 +- .../Views/NoteBlockActionsTableViewCell.swift | 2 +- .../Views/NoteBlockCommentTableViewCell.swift | 2 +- .../Views/NoteBlockHeaderTableViewCell.swift | 2 +- .../Views/NoteBlockImageTableViewCell.swift | 2 +- .../Classes/ViewRelated/Post/Autosaver.swift | 3 + .../WPAddPostCategoryViewController.m | 5 +- .../ViewRelated/Post/PostEditor+Publish.swift | 1 + .../ViewRelated/Post/PostListFooterView.m | 3 +- .../Post/PostSettingsViewController.m | 2 - .../ViewRelated/Post/WPStyleGuide+Pages.h | 5 +- .../ViewRelated/Post/WPStyleGuide+Pages.m | 4 +- .../Reader/ReaderBlockedSiteCell.swift | 2 +- .../Reader/ReaderCrossPostCell.swift | 2 +- .../Reader/ReaderGapMarkerCell.swift | 2 +- .../Reader/ReaderListStreamHeader.swift | 2 +- .../SiteCreationRequest+Validation.swift | 1 + .../Suggestions/SuggestionsTableViewCell.m | 3 +- .../ViewRelated/System/WPTabBarController.m | 1 - .../ViewRelated/Themes/ThemeBrowserCell.swift | 2 +- .../Themes/ThemeBrowserViewController.swift | 3 +- .../Tools/SettingsMultiTextViewController.m | 4 +- .../Tools/SettingsSelectionViewController.m | 5 +- .../Tools/SettingsTextViewController.m | 4 +- .../Views/NavigationTitleView.swift | 2 +- .../Views/VerticallyStackedButton.m | 3 +- .../ViewRelated/Views/WPUploadStatusButton.m | 3 +- .../Analytics/MigrationAnalyticsTracker.swift | 1 + WordPress/WordPress.xcodeproj/project.pbxproj | 87 +++- .../Blog/Style/WPStyleGuide+BlogTests.swift | 3 +- WordPress/WordPressTest/WPAppAnalyticsTests.m | 3 +- .../AuthenticatorAnalyticsTracker.swift | 1 + ...rdPressAuthenticatorDelegateProtocol.swift | 3 + .../Sources/Extensions/UIButton+Styles.swift | 1 + .../Sources/Logging/WPAuthenticatorLogging.h | 4 +- .../Sources/Logging/WPAuthenticatorLogging.m | 2 + .../NUX/Button/NUXButtonViewController.swift | 1 + .../NUXStackedButtonsViewController.swift | 1 + .../Sources/NUX/WPNUXMainButton.m | 3 +- .../Sources/NUX/WPNUXPrimaryButton.m | 3 +- .../Sources/NUX/WPNUXSecondaryButton.m | 2 +- .../Sources/NUX/WPWalkthroughOverlayView.m | 4 +- .../Sources/NUX/WPWalkthroughTextField.m | 3 +- .../Sources/Services/LoginFacade.h | 3 - .../Sources/Signin/AppleAuthenticator.swift | 1 + .../Signup/SignupGoogleViewController.swift | 3 + .../Unified Auth/GoogleAuthenticator.swift | 1 + .../GetStartedViewController.swift | 1 + .../MagicLinkRequestedViewController.swift | 1 + .../TextFieldTableViewCell.swift | 1 + .../TextLinkButtonTableViewCell.swift | 1 + .../WordPressKit/Logging/WPKitLogging.h | 4 +- .../WordPressKit/Logging/WPKitLogging.m | 2 + config/WordPressAuthenticator.xcconfig | 4 +- config/WordPressKit.xcconfig | 4 - config/WordPressKitTests.xcconfig | 4 +- 126 files changed, 689 insertions(+), 160 deletions(-) diff --git a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved index c564eb2e5be0..cda787a656b4 100644 --- a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -1,6 +1,384 @@ { "object": { "pins": [ + { + "package": "Alamofire", + "repositoryURL": "https://github.com/Alamofire/Alamofire.git", + "state": { + "branch": null, + "revision": "f455c2975872ccd2d9c81594c658af65716e9b9a", + "version": "5.9.1" + } + }, + { + "package": "AlamofireImage", + "repositoryURL": "https://github.com/Alamofire/AlamofireImage", + "state": { + "branch": null, + "revision": "1eaf3b6c6882bed10f6e7b119665599dd2329aa1", + "version": "4.3.0" + } + }, + { + "package": "AlamofireNetworkActivityIndicator", + "repositoryURL": "https://github.com/Alamofire/AlamofireNetworkActivityIndicator", + "state": { + "branch": null, + "revision": "392bed083e8d193aca16bfa684ee24e4bcff0510", + "version": "3.1.0" + } + }, + { + "package": "AutomatticTracksiOS", + "repositoryURL": "https://github.com/Automattic/Automattic-Tracks-iOS", + "state": { + "branch": null, + "revision": "948c7642009237c74ef30dad59f03835416873eb", + "version": "3.4.2" + } + }, + { + "package": "AutomatticAbout", + "repositoryURL": "https://github.com/automattic/AutomatticAbout-swift", + "state": { + "branch": null, + "revision": "0f784591b324e5d3ddc5771808ef8eca923e3de2", + "version": "1.1.2" + } + }, + { + "package": "DGCharts", + "repositoryURL": "https://github.com/danielgindi/Charts", + "state": { + "branch": null, + "revision": "0a229f8c914b0ec93798cee058cf75b339297513", + "version": "5.0.0" + } + }, + { + "package": "CocoaLumberjack", + "repositoryURL": "https://github.com/CocoaLumberjack/CocoaLumberjack", + "state": { + "branch": null, + "revision": "4b8714a7fb84d42393314ce897127b3939885ec3", + "version": "3.8.5" + } + }, + { + "package": "CollectionConcurrencyKit", + "repositoryURL": "https://github.com/JohnSundell/CollectionConcurrencyKit.git", + "state": { + "branch": null, + "revision": "b4f23e24b5a1bff301efc5e70871083ca029ff95", + "version": "0.2.0" + } + }, + { + "package": "ZendeskCommonUISDK", + "repositoryURL": "https://github.com/zendesk/commonui_sdk_ios", + "state": { + "branch": null, + "revision": "8729e7f4e316b46f6d33f046e663b6eedfe9955a", + "version": "9.0.1" + } + }, + { + "package": "ZendeskCoreSDK", + "repositoryURL": "https://github.com/zendesk/core_sdk_ios", + "state": { + "branch": null, + "revision": "8163d4d67f3aa8954467aa8191ee13cb4f1a2b9e", + "version": "5.0.3" + } + }, + { + "package": "CryptoSwift", + "repositoryURL": "https://github.com/krzyzanowskim/CryptoSwift.git", + "state": { + "branch": null, + "revision": "c9c3df6ab812de32bae61fc0cd1bf6d45170ebf0", + "version": "1.8.2" + } + }, + { + "package": "CwlCatchException", + "repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git", + "state": { + "branch": null, + "revision": "35f9e770f54ce62dd8526470f14c6e137cef3eea", + "version": "2.1.1" + } + }, + { + "package": "CwlPreconditionTesting", + "repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git", + "state": { + "branch": null, + "revision": "c21f7bab5ca8eee0a9998bbd17ca1d0eb45d4688", + "version": "2.1.0" + } + }, + { + "package": "Down", + "repositoryURL": "https://github.com/johnxnguyen/Down", + "state": { + "branch": "master", + "revision": "e754ab1c80920dd51a8e08290c912ac1c2ac8b58", + "version": null + } + }, + { + "package": "Gifu", + "repositoryURL": "https://github.com/kaishin/Gifu", + "state": { + "branch": null, + "revision": "82da0086dea14ca9afc9801234ad8dc4cd9e2738", + "version": "3.4.1" + } + }, + { + "package": "Gridicons", + "repositoryURL": "https://github.com/Automattic/Gridicons-iOS", + "state": { + "branch": "develop", + "revision": "79c7e58c81ea5cfad954974b1982b9ed9a0a48ad", + "version": null + } + }, + { + "package": "JTAppleCalendar", + "repositoryURL": "https://github.com/patchthecode/JTAppleCalendar", + "state": { + "branch": null, + "revision": "718f0ab68ba0fcd2bc134f6e9d30edc1b9b038e1", + "version": "8.0.5" + } + }, + { + "package": "Lottie", + "repositoryURL": "https://github.com/airbnb/lottie-ios.git", + "state": { + "branch": null, + "revision": "f522990668c2f9132323a2e68d924c7dcb9130b4", + "version": "4.4.0" + } + }, + { + "package": "ZendeskMessagingSDK", + "repositoryURL": "https://github.com/zendesk/messaging_sdk_ios", + "state": { + "branch": null, + "revision": "4dbb16d26b90452c1d41cba8e8dc81a1bcea7f1e", + "version": "6.0.1" + } + }, + { + "package": "ZendeskMessagingAPISDK", + "repositoryURL": "https://github.com/zendesk/messagingapi_sdk_ios", + "state": { + "branch": null, + "revision": "2f21e014a1f284edf484faf39b2b6fe377ec8c64", + "version": "6.0.0" + } + }, + { + "package": "Nimble", + "repositoryURL": "https://github.com/Quick/Nimble", + "state": { + "branch": null, + "revision": "1f3bde57bde12f5e7b07909848c071e9b73d6edc", + "version": "10.0.0" + } + }, + { + "package": "NSObject-SafeExpectations", + "repositoryURL": "https://github.com/wordpress-mobile/NSObject-SafeExpectations", + "state": { + "branch": null, + "revision": "eb84d994ab13a153888a19e5b99f536aafa77434", + "version": "0.0.6" + } + }, + { + "package": "NSURL+IDN", + "repositoryURL": "https://github.com/wordpress-mobile/NSURL-IDN", + "state": { + "branch": "trunk", + "revision": "50a0ffd324bb27ef76a5ca685b990307528dd9ea", + "version": null + } + }, + { + "package": "OCMock", + "repositoryURL": "https://github.com/erikdoe/ocmock", + "state": { + "branch": null, + "revision": "2c0bfd373289f4a7716db5d6db471640f91a6507", + "version": null + } + }, + { + "package": "OHHTTPStubs", + "repositoryURL": "https://github.com/AliSoftware/OHHTTPStubs", + "state": { + "branch": null, + "revision": "12f19662426d0434d6c330c6974d53e2eb10ecd9", + "version": "9.1.0" + } + }, + { + "package": "Reachability", + "repositoryURL": "https://github.com/tonymillion/Reachability", + "state": { + "branch": null, + "revision": "3e16ffa862dda39ca9c49722d9bcb68cc2ae83d5", + "version": "3.7.6" + } + }, + { + "package": "ScreenObject", + "repositoryURL": "https://github.com/Automattic/ScreenObject", + "state": { + "branch": null, + "revision": "328db56c62aab91440ec5e07cc9f7eef6e26a26e", + "version": "0.2.3" + } + }, + { + "package": "ZendeskSDKConfigurationsSDK", + "repositoryURL": "https://github.com/zendesk/sdkconfigurations_sdk_ios", + "state": { + "branch": null, + "revision": "fec7b8bf3d85cb895a0820a2f9d102f9d6ba3070", + "version": "4.0.0" + } + }, + { + "package": "Sentry", + "repositoryURL": "https://github.com/getsentry/sentry-cocoa", + "state": { + "branch": null, + "revision": "08862789e1cbba7a9561bed69832a9306f339cd3", + "version": "8.29.1" + } + }, + { + "package": "SourceKitten", + "repositoryURL": "https://github.com/jpsim/SourceKitten.git", + "state": { + "branch": null, + "revision": "b6dc09ee51dfb0c66e042d2328c017483a1a5d56", + "version": "0.34.1" + } + }, + { + "package": "Starscream", + "repositoryURL": "https://github.com/daltoniam/Starscream", + "state": { + "branch": null, + "revision": "c6bfd1af48efcc9a9ad203665db12375ba6b145a", + "version": "4.0.8" + } + }, + { + "package": "ZendeskSupportProvidersSDK", + "repositoryURL": "https://github.com/zendesk/support_providers_sdk_ios", + "state": { + "branch": null, + "revision": "16da780d8a0aa905b3935eee7836b9a0ee276597", + "version": "8.0.3" + } + }, + { + "package": "ZendeskSupportSDK", + "repositoryURL": "https://github.com/zendesk/support_sdk_ios", + "state": { + "branch": null, + "revision": "44cf26111bf0bc608a2474578b3d506793eef483", + "version": "8.0.3" + } + }, + { + "package": "SVProgressHUD", + "repositoryURL": "https://github.com/SVProgressHUD/SVProgressHUD", + "state": { + "branch": null, + "revision": "c33f7c775ba7feea6047a1fc3257f2e5863b44f7", + "version": "2.3.1" + } + }, + { + "package": "swift-argument-parser", + "repositoryURL": "https://github.com/apple/swift-argument-parser.git", + "state": { + "branch": null, + "revision": "8f4d2753f0e4778c76d5f05ad16c74f707390531", + "version": "1.2.3" + } + }, + { + "package": "swift-log", + "repositoryURL": "https://github.com/apple/swift-log", + "state": { + "branch": null, + "revision": "e97a6fcb1ab07462881ac165fdbb37f067e205d5", + "version": "1.5.4" + } + }, + { + "package": "Sodium", + "repositoryURL": "https://github.com/jedisct1/swift-sodium", + "state": { + "branch": null, + "revision": "4f9164a0a2c9a6a7ff53a2833d54a5c79c957342", + "version": "0.9.1" + } + }, + { + "package": "swift-syntax", + "repositoryURL": "https://github.com/apple/swift-syntax.git", + "state": { + "branch": null, + "revision": "6ad4ea24b01559dde0773e3d091f1b9e36175036", + "version": "509.0.2" + } + }, + { + "package": "SwiftLint", + "repositoryURL": "https://github.com/realm/SwiftLint", + "state": { + "branch": null, + "revision": "f17a4f9dfb6a6afb0408426354e4180daaf49cee", + "version": "0.54.0" + } + }, + { + "package": "SwiftSoup", + "repositoryURL": "https://github.com/scinfu/SwiftSoup.git", + "state": { + "branch": null, + "revision": "1d39e56d364cba79ce43b341f9661b534cccb18d", + "version": "2.7.1" + } + }, + { + "package": "SwiftyTextTable", + "repositoryURL": "https://github.com/scottrhoyt/SwiftyTextTable.git", + "state": { + "branch": null, + "revision": "c6df6cf533d120716bff38f8ff9885e1ce2a4ac3", + "version": "0.9.0" + } + }, + { + "package": "SWXMLHash", + "repositoryURL": "https://github.com/drmohundro/SWXMLHash.git", + "state": { + "branch": null, + "revision": "a853604c9e9a83ad9954c7e3d2a565273982471f", + "version": "7.0.2" + } + }, { "package": "BuildkiteTestCollector", "repositoryURL": "https://github.com/buildkite/test-collector-swift", @@ -9,6 +387,69 @@ "revision": "77c7f492f5c1c9ca159f73d18f56bbd1186390b0", "version": "0.3.0" } + }, + { + "package": "UIDeviceIdentifier", + "repositoryURL": "https://github.com/squarefrog/UIDeviceIdentifier", + "state": { + "branch": null, + "revision": "4699794b08bb79a4d77785edaba6ea739e298e4b", + "version": "2.3.0" + } + }, + { + "package": "WordPressShared", + "repositoryURL": "https://github.com/wordpress-mobile/WordPress-iOS-Shared", + "state": { + "branch": "task/remove-swiftlint", + "revision": "85dfbf34fc7d6ca73ae230991ceb5a335ee6f30e", + "version": null + } + }, + { + "package": "WordPressUI", + "repositoryURL": "https://github.com/wordpress-mobile/WordPressUI-iOS", + "state": { + "branch": "kean-patch-1", + "revision": "e848400c7af850e0668b36a4e566a2c71e4e0d7b", + "version": null + } + }, + { + "package": "wpxmlrpc", + "repositoryURL": "https://github.com/wordpress-mobile/wpxmlrpc", + "state": { + "branch": null, + "revision": "bfc413d336bdeaab89e62dc483380baa99b2257e", + "version": "0.10.0" + } + }, + { + "package": "XCUITestHelpers", + "repositoryURL": "https://github.com/Automattic/XCUITestHelpers", + "state": { + "branch": null, + "revision": "5179cb69d58b90761cc713bdee7740c4889d3295", + "version": "0.4.0" + } + }, + { + "package": "Yams", + "repositoryURL": "https://github.com/jpsim/Yams.git", + "state": { + "branch": null, + "revision": "9234124cff5e22e178988c18d8b95a8ae8007f76", + "version": "5.1.2" + } + }, + { + "package": "ZIPFoundation", + "repositoryURL": "https://github.com/weichsel/ZIPFoundation", + "state": { + "branch": null, + "revision": "02b6abe5f6eef7e3cbd5f247c5cc24e246efcfe0", + "version": "0.9.19" + } } ] }, diff --git a/WordPress/Classes/Categories/WPStyleGuide+Suggestions.h b/WordPress/Classes/Categories/WPStyleGuide+Suggestions.h index 22bd47454add..e165a6fcab6a 100644 --- a/WordPress/Classes/Categories/WPStyleGuide+Suggestions.h +++ b/WordPress/Classes/Categories/WPStyleGuide+Suggestions.h @@ -1,4 +1,5 @@ -#import +@import UIKit; +@import WordPressSharedObjC; @interface WPStyleGuide (Suggestions) diff --git a/WordPress/Classes/Models/AbstractPost.m b/WordPress/Classes/Models/AbstractPost.m index 97f97e893d53..49ebafba5bb7 100644 --- a/WordPress/Classes/Models/AbstractPost.m +++ b/WordPress/Classes/Models/AbstractPost.m @@ -3,7 +3,9 @@ #import "CoreDataStack.h" #import "WordPress-Swift.h" #import "BasePost.h" + @import WordPressKit; +@import WordPressShared; @implementation AbstractPost diff --git a/WordPress/Classes/Models/BasePost.h b/WordPress/Classes/Models/BasePost.h index 8e87f78bb62a..7611dea54d23 100644 --- a/WordPress/Classes/Models/BasePost.h +++ b/WordPress/Classes/Models/BasePost.h @@ -1,7 +1,6 @@ #import #import "Blog.h" #import "PostContentProvider.h" -@import WordPressShared; NS_ASSUME_NONNULL_BEGIN diff --git a/WordPress/Classes/Models/Notifications/Actions/ReplyToComment.swift b/WordPress/Classes/Models/Notifications/Actions/ReplyToComment.swift index 4a267596df05..8689a6f6f9fd 100644 --- a/WordPress/Classes/Models/Notifications/Actions/ReplyToComment.swift +++ b/WordPress/Classes/Models/Notifications/Actions/ReplyToComment.swift @@ -1,3 +1,5 @@ +import Foundation + /// Encapsulates logic to reply to a comment class ReplyToComment: DefaultNotificationActionCommand { static let title = NSLocalizedString("Reply", comment: "Reply to a comment.") diff --git a/WordPress/Classes/Models/ReaderPost.m b/WordPress/Classes/Models/ReaderPost.m index fd57a1ecd826..687ad00f7112 100644 --- a/WordPress/Classes/Models/ReaderPost.m +++ b/WordPress/Classes/Models/ReaderPost.m @@ -3,10 +3,10 @@ #import "CoreDataStack.h" #import "SourcePostAttribution.h" #import "WPAccount.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + // These keys are used in the getStoredComment method NSString * const ReaderPostStoredCommentIDKey = @"commentID"; NSString * const ReaderPostStoredCommentTextKey = @"comment"; diff --git a/WordPress/Classes/Models/Theme.m b/WordPress/Classes/Models/Theme.m index d8e3586fed76..cfaf574590cf 100644 --- a/WordPress/Classes/Models/Theme.m +++ b/WordPress/Classes/Models/Theme.m @@ -5,6 +5,8 @@ #import "AccountService.h" #import "WordPress-Swift.h" +@import WordPressShared; + static NSString* const ThemeAdminUrlCustomize = @"customize.php?theme=%@&hide_close=true"; static NSString* const ThemeUrlDemoParameters = @"?demo=true&iframe=true&theme_preview=true"; static NSString* const ThemeUrlSupport = @"https://wordpress.com/themes/%@/support/?preview=true&iframe=true"; diff --git a/WordPress/Classes/Services/BlogSyncFacade.m b/WordPress/Classes/Services/BlogSyncFacade.m index 17a98c79b606..b411b5c4bbb5 100644 --- a/WordPress/Classes/Services/BlogSyncFacade.m +++ b/WordPress/Classes/Services/BlogSyncFacade.m @@ -6,8 +6,7 @@ #import "WPAppAnalytics.h" #import "WordPress-Swift.h" -#import - +@import WordPressShared; @import NSObject_SafeExpectations; @implementation BlogSyncFacade diff --git a/WordPress/Classes/Services/CommentService.m b/WordPress/Classes/Services/CommentService.m index 592c24cb0fed..578a14b9a0b5 100644 --- a/WordPress/Classes/Services/CommentService.m +++ b/WordPress/Classes/Services/CommentService.m @@ -8,6 +8,7 @@ #import "AbstractPost.h" #import "WordPress-Swift.h" +@import WordPressShared; NSUInteger const WPTopLevelHierarchicalCommentsPerPage = 20; NSInteger const WPNumberOfCommentsToSync = 100; diff --git a/WordPress/Classes/Services/MediaImageService.swift b/WordPress/Classes/Services/MediaImageService.swift index 0474191b0f09..49fb47a78da5 100644 --- a/WordPress/Classes/Services/MediaImageService.swift +++ b/WordPress/Classes/Services/MediaImageService.swift @@ -1,5 +1,6 @@ import UIKit import CoreData +import WordPressShared /// A service for retrieval and caching of thumbnails for ``Media`` objects. final class MediaImageService { diff --git a/WordPress/Classes/Services/MediaService.m b/WordPress/Classes/Services/MediaService.m index fb8714d07fce..29a192cb5a6a 100644 --- a/WordPress/Classes/Services/MediaService.m +++ b/WordPress/Classes/Services/MediaService.m @@ -7,7 +7,6 @@ #import #import "WordPress-Swift.h" #import "WPXMLRPCDecoder.h" -#import @import WordPressKit; @import WordPressUI; diff --git a/WordPress/Classes/Services/Reader Post/ReaderPostService.h b/WordPress/Classes/Services/Reader Post/ReaderPostService.h index 050c76762605..7a67388639c7 100644 --- a/WordPress/Classes/Services/Reader Post/ReaderPostService.h +++ b/WordPress/Classes/Services/Reader Post/ReaderPostService.h @@ -5,7 +5,7 @@ #pragma clang diagnostic ignored "-Wnullability-completeness" @import WordPressKit; -@import WordPressShared; +@import WordPressSharedObjC; @class ReaderPost; @class ReaderAbstractTopic; diff --git a/WordPress/Classes/Services/Reader Post/ReaderPostService.m b/WordPress/Classes/Services/Reader Post/ReaderPostService.m index f948da602cfb..5b092a696be6 100644 --- a/WordPress/Classes/Services/Reader Post/ReaderPostService.m +++ b/WordPress/Classes/Services/Reader Post/ReaderPostService.m @@ -8,8 +8,8 @@ #import "SourcePostAttribution.h" #import "WPAccount.h" #import "WPAppAnalytics.h" -#import #import "WordPress-Swift.h" + @import WordPressKit; @import WordPressShared; diff --git a/WordPress/Classes/Services/ReaderTopicService.m b/WordPress/Classes/Services/ReaderTopicService.m index fdf55f7b9fe2..ce1b19bae6df 100644 --- a/WordPress/Classes/Services/ReaderTopicService.m +++ b/WordPress/Classes/Services/ReaderTopicService.m @@ -5,10 +5,10 @@ #import "ReaderPost.h" #import "ReaderPostService.h" #import "WPAccount.h" -#import #import "WordPress-Swift.h" -@import WordPressKit; +@import WordPressKit; +@import WordPressShared; NSString * const ReaderTopicFreshlyPressedPathCommponent = @"freshly-pressed"; static NSString * const ReaderTopicCurrentTopicPathKey = @"ReaderTopicCurrentTopicPathKey"; diff --git a/WordPress/Classes/System/WordPress-Bridging-Header.h b/WordPress/Classes/System/WordPress-Bridging-Header.h index 296b38966f88..f33d6c0e7b15 100644 --- a/WordPress/Classes/System/WordPress-Bridging-Header.h +++ b/WordPress/Classes/System/WordPress-Bridging-Header.h @@ -108,12 +108,4 @@ #import "WPAddPostCategoryViewController.h" -// Pods - -#import -#import -#import -#import -#import - FOUNDATION_EXTERN void SetCocoaLumberjackObjCLogLevel(NSUInteger ddLogLevelRawValue); diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerAutomatticTracks.h b/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerAutomatticTracks.h index 30e3c66dc051..35e2b8c2ee3a 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerAutomatticTracks.h +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerAutomatticTracks.h @@ -1,5 +1,5 @@ #import -#import +@import WordPressSharedObjC; @interface WPAnalyticsTrackerAutomatticTracks : NSObject diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.h b/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.h index e93f7246e59d..3cb1aefa8c08 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.h +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.h @@ -1,5 +1,5 @@ -#import -#import +@import Foundation; +@import WordPressSharedObjC; @interface WPAnalyticsTrackerWPCom : NSObject diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.m b/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.m index 3e0736f240dc..ba0f1dd911f1 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.m +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsTrackerWPCom.m @@ -2,6 +2,8 @@ #import "WPUserAgent.h" #import "Constants.h" +@import WordPressShared; + @implementation WPAnalyticsTrackerWPCom - (void)track:(WPAnalyticsStat)stat diff --git a/WordPress/Classes/Utility/Analytics/WPAppAnalytics.h b/WordPress/Classes/Utility/Analytics/WPAppAnalytics.h index 8d4e5fcf8192..5c536be7ab74 100644 --- a/WordPress/Classes/Utility/Analytics/WPAppAnalytics.h +++ b/WordPress/Classes/Utility/Analytics/WPAppAnalytics.h @@ -1,5 +1,5 @@ -#import -#import +@import Foundation; +@import WordPressSharedObjC; @class Blog, AbstractPost, AccountService; diff --git a/WordPress/Classes/Utility/Media/ImageLoader.swift b/WordPress/Classes/Utility/Media/ImageLoader.swift index 6b33d707aad9..22e9597a589f 100644 --- a/WordPress/Classes/Utility/Media/ImageLoader.swift +++ b/WordPress/Classes/Utility/Media/ImageLoader.swift @@ -1,6 +1,7 @@ import MobileCoreServices import AlamofireImage import AutomatticTracks +import WordPressShared /// Class used together with `CachedAnimatedImageView` to facilitate the loading of both /// still images and animated gifs. diff --git a/WordPress/Classes/Utility/NotificationEventTracker.swift b/WordPress/Classes/Utility/NotificationEventTracker.swift index a73a7cff6ccc..701db4338e0e 100644 --- a/WordPress/Classes/Utility/NotificationEventTracker.swift +++ b/WordPress/Classes/Utility/NotificationEventTracker.swift @@ -1,4 +1,5 @@ import Foundation +import WordPressShared class NotificationEventTracker { enum Event: String { diff --git a/WordPress/Classes/Utility/Sharing/WPActivityDefaults.m b/WordPress/Classes/Utility/Sharing/WPActivityDefaults.m index 7178906c166d..39eabfc2cd73 100644 --- a/WordPress/Classes/Utility/Sharing/WPActivityDefaults.m +++ b/WordPress/Classes/Utility/Sharing/WPActivityDefaults.m @@ -1,7 +1,7 @@ #import "WPActivityDefaults.h" #import "SafariActivity.h" -#import +@import WordPressShared; @implementation WPActivityDefaults diff --git a/WordPress/Classes/Utility/WPError.m b/WordPress/Classes/Utility/WPError.m index 2cc1d12d9733..1548be29e6b6 100644 --- a/WordPress/Classes/Utility/WPError.m +++ b/WordPress/Classes/Utility/WPError.m @@ -1,8 +1,8 @@ #import "WPError.h" #import "WPAccount.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; @import wpxmlrpc; NSInteger const SupportButtonIndex = 0; diff --git a/WordPress/Classes/Utility/WPStyleGuide+WebView.h b/WordPress/Classes/Utility/WPStyleGuide+WebView.h index de253a52ce62..90ceb7a43ae5 100644 --- a/WordPress/Classes/Utility/WPStyleGuide+WebView.h +++ b/WordPress/Classes/Utility/WPStyleGuide+WebView.h @@ -1,5 +1,5 @@ -#import -#import +@import UIKit; +@import WordPressSharedObjC; #pragma mark - WebViewController Styles diff --git a/WordPress/Classes/Utility/WPTableViewHandler.m b/WordPress/Classes/Utility/WPTableViewHandler.m index 6bfa196e777b..9c0554be482a 100644 --- a/WordPress/Classes/Utility/WPTableViewHandler.m +++ b/WordPress/Classes/Utility/WPTableViewHandler.m @@ -1,9 +1,9 @@ #import "WPTableViewHandler.h" -#import #import "WordPress-Swift.h" @import CoreData; @import NSObject_SafeExpectations; +@import WordPressShared; static NSString * const DefaultCellIdentifier = @"DefaultCellIdentifier"; static CGFloat const DefaultCellHeight = 44.0; diff --git a/WordPress/Classes/Utility/WPWebViewController.m b/WordPress/Classes/Utility/WPWebViewController.m index 146b234ac764..b35ec6873039 100644 --- a/WordPress/Classes/Utility/WPWebViewController.m +++ b/WordPress/Classes/Utility/WPWebViewController.m @@ -5,11 +5,10 @@ #import "Constants.h" #import "WPError.h" #import "WPStyleGuide+WebView.h" -#import #import "WordPress-Swift.h" @import Gridicons; - +@import WordPressShared; #pragma mark - Constants diff --git a/WordPress/Classes/Utility/ZendeskUtils.swift b/WordPress/Classes/Utility/ZendeskUtils.swift index fc41b3387c54..bc432f4b6df4 100644 --- a/WordPress/Classes/Utility/ZendeskUtils.swift +++ b/WordPress/Classes/Utility/ZendeskUtils.swift @@ -2,6 +2,7 @@ import Foundation import CoreTelephony import WordPressAuthenticator import WordPressKit +import WordPressShared import DesignSystem import SupportSDK diff --git a/WordPress/Classes/ViewRelated/Activity/ActivityTableViewCell.swift b/WordPress/Classes/ViewRelated/Activity/ActivityTableViewCell.swift index 4e35f96b2213..674e67ef3850 100644 --- a/WordPress/Classes/ViewRelated/Activity/ActivityTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Activity/ActivityTableViewCell.swift @@ -1,6 +1,6 @@ import Foundation import Gridicons -import WordPressShared.WPTableViewCell +import WordPressShared open class ActivityTableViewCell: WPTableViewCell, NibReusable { diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index 1b7683da4a3b..bc1aebe11d65 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -15,11 +15,11 @@ #import "MenusViewController.h" #import "UIViewController+RemoveQuickStart.h" #import "NSMutableArray+NullableObjects.h" -#import @import Gridicons; @import Reachability; @import WordPressUIObjC; +@import WordPressShared; static NSString *const BlogDetailsCellIdentifier = @"BlogDetailsCell"; static NSString *const BlogDetailsPlanCellIdentifier = @"BlogDetailsPlanCell"; diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/SoTW 2023/SOTWCardView.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/SoTW 2023/SOTWCardView.swift index 2c41276aed37..00eed3614ec2 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/SoTW 2023/SOTWCardView.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/SoTW 2023/SOTWCardView.swift @@ -1,3 +1,6 @@ +import UIKit +import WordPressShared + /// A seasonal card view shown in the WordPress app to promote State of the Word 2023. /// class SotWCardView: UIView { diff --git a/WordPress/Classes/ViewRelated/Blog/Blogging Reminders/BloggingRemindersTracker.swift b/WordPress/Classes/ViewRelated/Blog/Blogging Reminders/BloggingRemindersTracker.swift index 5770813c9d82..987d946b1129 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blogging Reminders/BloggingRemindersTracker.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blogging Reminders/BloggingRemindersTracker.swift @@ -1,4 +1,5 @@ import Foundation +import WordPressShared /// Analytics tracker for blogging reminders. /// diff --git a/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m b/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m index 8189dafd88b1..25e5ddd66c92 100644 --- a/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/SharingConnectionsViewController.m @@ -4,10 +4,9 @@ #import "BlogService.h" #import "SharingDetailViewController.h" #import "SharingAuthorizationHelper.h" -#import #import "WordPress-Swift.h" - +@import WordPressShared; static NSString *const CellIdentifier = @"CellIdentifier"; diff --git a/WordPress/Classes/ViewRelated/Blog/SharingDetailViewController.m b/WordPress/Classes/ViewRelated/Blog/SharingDetailViewController.m index 538d340f5ee3..67f06758b3e9 100644 --- a/WordPress/Classes/ViewRelated/Blog/SharingDetailViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/SharingDetailViewController.m @@ -3,10 +3,9 @@ #import "BlogService.h" #import "SVProgressHUD+Dismiss.h" #import "SharingAuthorizationHelper.h" -#import #import "WordPress-Swift.h" - +@import WordPressShared; static NSString *const CellIdentifier = @"CellIdentifier"; diff --git a/WordPress/Classes/ViewRelated/Blog/SharingViewController.m b/WordPress/Classes/ViewRelated/Blog/SharingViewController.m index a749555f651b..9b9eb261e521 100644 --- a/WordPress/Classes/ViewRelated/Blog/SharingViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/SharingViewController.m @@ -4,9 +4,9 @@ #import "SharingConnectionsViewController.h" #import "SVProgressHUD+Dismiss.h" #import "WordPress-Swift.h" -#import @import WordPressUI; +@import WordPressShared; typedef NS_ENUM(NSInteger, SharingSectionType) { SharingSectionUndefined = 1000, diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/SettingTableViewCell.h b/WordPress/Classes/ViewRelated/Blog/Site Settings/SettingTableViewCell.h index 26aad6fe5aa4..92e8156abc0a 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/SettingTableViewCell.h +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/SettingTableViewCell.h @@ -1,4 +1,5 @@ -#import +@import UIKit; +@import WordPressSharedObjC; extern NSString * const SettingsTableViewCellReuseIdentifier; diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift index ebd4b9e39db9..1193a71f14e8 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController+Swift.swift @@ -1,6 +1,7 @@ import Foundation import SwiftUI import WordPressFlux +import WordPressShared // This is just a wrapper for the receipts, since Receipt isn't exposed to Obj-C @objc class TimeZoneObserver: NSObject { diff --git a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m index d460c439e305..8b84d01e863d 100644 --- a/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Site Settings/SiteSettingsViewController.m @@ -13,7 +13,9 @@ #import "WordPress-Swift.h" #import "WPWebViewController.h" #import "AccountService.h" + @import WordPressKit; +@import WordPressShared; @import wpxmlrpc; @import NSURL_IDN; diff --git a/WordPress/Classes/ViewRelated/Cells/ExpandableCell.swift b/WordPress/Classes/ViewRelated/Cells/ExpandableCell.swift index cb2851eca9af..6cff30295672 100644 --- a/WordPress/Classes/ViewRelated/Cells/ExpandableCell.swift +++ b/WordPress/Classes/ViewRelated/Cells/ExpandableCell.swift @@ -1,5 +1,5 @@ import UIKit -import WordPressShared.WPStyleGuide +import WordPressShared import Gridicons import CoreGraphics diff --git a/WordPress/Classes/ViewRelated/Cells/PostFeaturedImageCell.h b/WordPress/Classes/ViewRelated/Cells/PostFeaturedImageCell.h index eae85221395c..ccbca15a7e47 100644 --- a/WordPress/Classes/ViewRelated/Cells/PostFeaturedImageCell.h +++ b/WordPress/Classes/ViewRelated/Cells/PostFeaturedImageCell.h @@ -1,4 +1,4 @@ -#import +@import WordPressShared; @class AbstractPost; @class PostFeaturedImageCell; diff --git a/WordPress/Classes/ViewRelated/Cells/WPBlogTableViewCell.h b/WordPress/Classes/ViewRelated/Cells/WPBlogTableViewCell.h index fcfe2fae4b85..58f387d297c5 100644 --- a/WordPress/Classes/ViewRelated/Cells/WPBlogTableViewCell.h +++ b/WordPress/Classes/ViewRelated/Cells/WPBlogTableViewCell.h @@ -1,4 +1,5 @@ -#import +@import UIKit; +@import WordPressSharedObjC; NS_ASSUME_NONNULL_BEGIN; diff --git a/WordPress/Classes/ViewRelated/Cells/WPProgressTableViewCell.h b/WordPress/Classes/ViewRelated/Cells/WPProgressTableViewCell.h index 23f0e2f09e7a..d576ff22671f 100644 --- a/WordPress/Classes/ViewRelated/Cells/WPProgressTableViewCell.h +++ b/WordPress/Classes/ViewRelated/Cells/WPProgressTableViewCell.h @@ -1,4 +1,7 @@ -#import +@import UIKit; +@import WordPressSharedObjC; + +@class WPTableViewCell; /** The corresponding value is an UIImage instance representing the work being done diff --git a/WordPress/Classes/ViewRelated/Cells/WPTableViewActivityCell.h b/WordPress/Classes/ViewRelated/Cells/WPTableViewActivityCell.h index b2cfe6795bc4..5664d394f281 100644 --- a/WordPress/Classes/ViewRelated/Cells/WPTableViewActivityCell.h +++ b/WordPress/Classes/ViewRelated/Cells/WPTableViewActivityCell.h @@ -1,8 +1,7 @@ -#import -#import +@import UIKit; +@import WordPressShared; -@interface WPTableViewActivityCell : WPTableViewCell { -} +@interface WPTableViewActivityCell : WPTableViewCell {} @property (nonatomic, strong) IBOutlet UIActivityIndicatorView *spinner; @property (nonatomic, strong) IBOutlet UIView *viewForBackground; diff --git a/WordPress/Classes/ViewRelated/Comments/CommentsViewController.m b/WordPress/Classes/ViewRelated/Comments/CommentsViewController.m index 5091d7b32732..4f2154b5509e 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Comments/CommentsViewController.m @@ -2,7 +2,8 @@ #import "Blog.h" #import "WordPress-Swift.h" #import "WPTableViewHandler.h" -#import + +@import WordPressShared; @class Comment; diff --git a/WordPress/Classes/ViewRelated/Domains/Domain registration/RegisterDomainDetails/ViewModel/RegisterDomainDetailsViewModel+RowDefinitions.swift b/WordPress/Classes/ViewRelated/Domains/Domain registration/RegisterDomainDetails/ViewModel/RegisterDomainDetailsViewModel+RowDefinitions.swift index e1a9f7718943..24c173a06dd7 100644 --- a/WordPress/Classes/ViewRelated/Domains/Domain registration/RegisterDomainDetails/ViewModel/RegisterDomainDetailsViewModel+RowDefinitions.swift +++ b/WordPress/Classes/ViewRelated/Domains/Domain registration/RegisterDomainDetails/ViewModel/RegisterDomainDetailsViewModel+RowDefinitions.swift @@ -1,4 +1,5 @@ import Foundation +import WordPressShared extension RegisterDomainDetailsViewModel { diff --git a/WordPress/Classes/ViewRelated/Gutenberg/EditorMediaUtility.swift b/WordPress/Classes/ViewRelated/Gutenberg/EditorMediaUtility.swift index 52a80cc757ae..c538d00e9daf 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/EditorMediaUtility.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/EditorMediaUtility.swift @@ -1,6 +1,7 @@ import AutomatticTracks import Aztec import Gridicons +import WordPressShared final class AuthenticatedImageDownload: AsyncOperation { enum DownloadError: Error { diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index a22be92939da..597709f5345d 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -2,6 +2,7 @@ import UIKit import Gutenberg import Aztec import WordPressFlux +import WordPressShared import React import AutomatticTracks import Combine diff --git a/WordPress/Classes/ViewRelated/Gutenberg/Layout Picker/FilterableCategoriesViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/Layout Picker/FilterableCategoriesViewController.swift index 4e256d43d4d0..69566e6bdd7a 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/Layout Picker/FilterableCategoriesViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/Layout Picker/FilterableCategoriesViewController.swift @@ -1,6 +1,7 @@ import UIKit import Gridicons import Gutenberg +import WordPressShared class FilterableCategoriesViewController: CollapsableHeaderViewController { private enum CategoryFilterAnalyticsKeys { diff --git a/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m b/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m index 69bc0354cb0c..e77e4fdf594c 100644 --- a/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m +++ b/WordPress/Classes/ViewRelated/Me/Help & Support/Activity Logs/ActivityLogViewController.m @@ -5,6 +5,8 @@ #import "WPLogger.h" #import "WPGUIConstants.h" +@import WordPressShared; + static NSString *const ActivityLogCellIdentifier = @"ActivityLogCell"; @interface ActivityLogViewController () diff --git a/WordPress/Classes/ViewRelated/Me/Views/Header/MeHeaderView.m b/WordPress/Classes/ViewRelated/Me/Views/Header/MeHeaderView.m index 1bfbf0bb5671..f0ab776ef55f 100644 --- a/WordPress/Classes/ViewRelated/Me/Views/Header/MeHeaderView.m +++ b/WordPress/Classes/ViewRelated/Me/Views/Header/MeHeaderView.m @@ -3,6 +3,8 @@ #import "WordPress-Swift.h" #import "Gravatar-Swift.h" +@import WordPressShared; + const CGFloat MeHeaderViewHeight = 154; const CGFloat MeHeaderViewGravatarSize = 64.0; const CGFloat MeHeaderViewLabelHeight = 20.0; diff --git a/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.h b/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.h index 956787cc8208..f045865e2dfc 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.h +++ b/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.h @@ -1,5 +1,4 @@ #import -#import NS_ASSUME_NONNULL_BEGIN diff --git a/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.m b/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.m index 31708caccc3e..7c3f3ca10feb 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuDetailsViewController.m @@ -3,10 +3,10 @@ #import "Menu+ViewDesign.h" #import "Blog.h" #import "WPAppAnalytics.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + @import Gridicons; @import WordPressUI; diff --git a/WordPress/Classes/ViewRelated/Menus/MenuHeaderViewController.m b/WordPress/Classes/ViewRelated/Menus/MenuHeaderViewController.m index fb1bcb1759f9..fd366c2c6a62 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuHeaderViewController.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuHeaderViewController.m @@ -4,10 +4,10 @@ #import "Menu.h" #import "Menu+ViewDesign.h" #import "MenuLocation.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + static CGFloat ViewExpansionAnimationDelay = 0.15; @interface MenuHeaderViewController () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m index 0d2bff28d1ad..7b69c89298ba 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m @@ -1,11 +1,10 @@ #import "MenuItemAbstractView.h" #import "MenuItem+ViewDesign.h" -#import -#import #import "WordPress-Swift.h" @import WordPressUI; @import WordPressUIObjC; +@import WordPressShared; @interface MenuItemDrawingView () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemCheckButtonView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemCheckButtonView.m index 6cfe9b870ba2..19edcca068f2 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemCheckButtonView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemCheckButtonView.m @@ -1,9 +1,8 @@ #import "MenuItemCheckButtonView.h" #import "Menu+ViewDesign.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; @import Gridicons; static CGFloat const iconPadding = 3.0; diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemEditingFooterView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemEditingFooterView.m index 5244acbc4e61..c39c3770c835 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemEditingFooterView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemEditingFooterView.m @@ -1,9 +1,8 @@ #import "MenuItemEditingFooterView.h" -#import -#import #import "WordPress-Swift.h" @import Gridicons; +@import WordPressShared; @interface MenuItemEditingFooterView () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemEditingHeaderView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemEditingHeaderView.m index a1f6fc37def3..b2ecb8d64076 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemEditingHeaderView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemEditingHeaderView.m @@ -1,9 +1,10 @@ #import "MenuItemEditingHeaderView.h" #import "MenuItem.h" #import "MenuItem+ViewDesign.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; + @interface MenuItemEditingHeaderView () @property (nonatomic, strong, readonly) UIStackView *stackView; diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemEditingViewController.m b/WordPress/Classes/ViewRelated/Menus/MenuItemEditingViewController.m index ed85f186cad4..331ff9626664 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemEditingViewController.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemEditingViewController.m @@ -7,10 +7,10 @@ #import "MenuItemSourceViewController.h" #import "MenuItemTypeViewController.h" #import "CoreDataStack.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + NSString * const MenuItemEditingTypeSelectionChangedNotification = @"MenuItemEditingTypeSelectionChangedNotification"; static CGFloat const FooterViewDefaultHeight = 49.0; diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemLinkViewController.m b/WordPress/Classes/ViewRelated/Menus/MenuItemLinkViewController.m index 97812379daea..2d2ddc1b09d3 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemLinkViewController.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemLinkViewController.m @@ -1,9 +1,9 @@ #import "MenuItemLinkViewController.h" #import "MenuItemCheckButtonView.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + static CGFloat const LinkTextBarHeight = 48.0; @interface MenuItemLinkViewController () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceCell.m b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceCell.m index c7d24227e0e8..cb037fc73e58 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceCell.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceCell.m @@ -1,9 +1,9 @@ #import "MenuItemSourceCell.h" #import "Menu+ViewDesign.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + #pragma mark - MenuItemSourceRadioButton @interface MenuItemSourceRadioButton : UIView diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceFooterView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceFooterView.m index 23a00eb1b8fc..61cfae8a911e 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceFooterView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceFooterView.m @@ -1,9 +1,10 @@ #import "MenuItemSourceFooterView.h" #import "MenuItemSourceCell.h" #import "Menu+ViewDesign.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; + @interface MenuItemSourceFooterView () @property (nonatomic, copy) NSString *labelText; diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceHeaderView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceHeaderView.m index 572e061d66b9..653e21ca88c8 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceHeaderView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceHeaderView.m @@ -1,9 +1,8 @@ #import "MenuItemSourceHeaderView.h" #import "MenuItem+ViewDesign.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; @import Gridicons; @interface MenuItemSourceHeaderView () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceResultsViewController.m b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceResultsViewController.m index 453ae94af0c3..27ba6aa7f45a 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceResultsViewController.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceResultsViewController.m @@ -4,9 +4,10 @@ #import "MenuItemSourceFooterView.h" #import "Blog.h" #import "Menu+ViewDesign.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; + static NSTimeInterval const SearchBarFetchRequestUpdateDelay = 0.10; static NSTimeInterval const SearchBarRemoteServiceUpdateDelay = 0.25; diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceTextBar.m b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceTextBar.m index 0b8b2a04b56f..dabb566b1e02 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemSourceTextBar.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemSourceTextBar.m @@ -1,11 +1,9 @@ #import "MenuItemSourceTextBar.h" #import "Menu+ViewDesign.h" -#import -#import -#import #import "WordPress-Swift.h" @import Gridicons; +@import WordPressShared; @interface MenuItemSourceTextBarFieldObserver () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemTypeSelectionView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemTypeSelectionView.m index 546204c2bdb5..373a128e3d53 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemTypeSelectionView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemTypeSelectionView.m @@ -1,10 +1,9 @@ #import "MenuItemTypeSelectionView.h" #import "Menu+ViewDesign.h" #import "MenuItem+ViewDesign.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; @import Gridicons; @interface MenuItemTypeSelectionView () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemView.m b/WordPress/Classes/ViewRelated/Menus/MenuItemView.m index aabfdec0888c..3dfd5bdc0c6c 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemView.m @@ -1,11 +1,10 @@ #import "MenuItemView.h" #import "MenuItem.h" #import "MenuItem+ViewDesign.h" -#import -#import #import "WordPress-Swift.h" @import Gridicons; +@import WordPressShared; @interface MenuItemView () diff --git a/WordPress/Classes/ViewRelated/Menus/MenuItemsViewController.m b/WordPress/Classes/ViewRelated/Menus/MenuItemsViewController.m index cc98f72bee52..b74de2dc86c9 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemsViewController.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemsViewController.m @@ -8,10 +8,10 @@ #import "CoreDataStack.h" #import "Menu+ViewDesign.h" #import "WPGUIConstants.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + static CGFloat const ItemHoriztonalDragDetectionWidthRatio = 0.05; static CGFloat const ItemOrderingTouchesDetectionInset = 10.0; diff --git a/WordPress/Classes/ViewRelated/Menus/MenusSelectionDetailView.m b/WordPress/Classes/ViewRelated/Menus/MenusSelectionDetailView.m index b0cae422ee07..e5841984a567 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenusSelectionDetailView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenusSelectionDetailView.m @@ -1,10 +1,9 @@ #import "MenusSelectionDetailView.h" #import "Menu+ViewDesign.h" #import "MenusSelectionView.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; @import Gridicons; @interface MenusSelectionDetailView () diff --git a/WordPress/Classes/ViewRelated/Menus/MenusSelectionItemView.m b/WordPress/Classes/ViewRelated/Menus/MenusSelectionItemView.m index cbbda9685bc4..e231e22cd5e8 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenusSelectionItemView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenusSelectionItemView.m @@ -1,9 +1,9 @@ #import "MenusSelectionItemView.h" #import "MenusSelectionView.h" #import "Menu+ViewDesign.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; @import Gridicons; @interface MenusSelectionItemView () diff --git a/WordPress/Classes/ViewRelated/Menus/MenusSelectionView.m b/WordPress/Classes/ViewRelated/Menus/MenusSelectionView.m index 3d1232b9927c..94d3b468f399 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenusSelectionView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenusSelectionView.m @@ -2,9 +2,10 @@ #import "MenusSelectionDetailView.h" #import "MenusSelectionItemView.h" #import "Menu+ViewDesign.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; + @interface MenusSelectionView () @property (nonatomic, strong, readonly) NSMutableArray *items; diff --git a/WordPress/Classes/ViewRelated/Menus/MenusViewController.m b/WordPress/Classes/ViewRelated/Menus/MenusViewController.m index d0ea15f24916..389956c4252a 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenusViewController.m +++ b/WordPress/Classes/ViewRelated/Menus/MenusViewController.m @@ -12,8 +12,8 @@ #import "CoreDataStack.h" #import "WPAppAnalytics.h" #import "WordPress-Swift.h" -#import -#import + +@import WordPressShared; static CGFloat const ScrollViewOffsetAdjustmentPadding = 10.0; diff --git a/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift b/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift index 788eb211c44c..d8c0defa999c 100644 --- a/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift +++ b/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared import Gridicons // MARK: - ReplyTextViewDelegate diff --git a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockActionsTableViewCell.swift b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockActionsTableViewCell.swift index cb4a4c2d5d18..68fd19998c04 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockActionsTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockActionsTableViewCell.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared // MARK: - NoteBlockActionsTableViewCell // diff --git a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockCommentTableViewCell.swift b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockCommentTableViewCell.swift index 2e9b1fc8b92a..336df9e8d14a 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockCommentTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockCommentTableViewCell.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared import WordPressUI import Gravatar diff --git a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockHeaderTableViewCell.swift b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockHeaderTableViewCell.swift index 499384e8266f..162aaab7efca 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockHeaderTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockHeaderTableViewCell.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared import WordPressUI import Gravatar diff --git a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockImageTableViewCell.swift b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockImageTableViewCell.swift index b637cbfd00a3..175d0ad1b366 100644 --- a/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockImageTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Notifications/Views/NoteBlockImageTableViewCell.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared class NoteBlockImageTableViewCell: NoteBlockTableViewCell { // MARK: - Public Properties diff --git a/WordPress/Classes/ViewRelated/Post/Autosaver.swift b/WordPress/Classes/ViewRelated/Post/Autosaver.swift index bb72034dae2b..c1e077f25cb1 100644 --- a/WordPress/Classes/ViewRelated/Post/Autosaver.swift +++ b/WordPress/Classes/ViewRelated/Post/Autosaver.swift @@ -1,3 +1,6 @@ +import Foundation +import WordPressShared + /// Post autosave helper that triggers an action after X ammount of changes or Y time of inactivity. /// class Autosaver { diff --git a/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m b/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m index ecc98152a395..70e8cf5ed596 100644 --- a/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m +++ b/WordPress/Classes/ViewRelated/Post/Categories/WPAddPostCategoryViewController.m @@ -7,9 +7,8 @@ #import "CoreDataStack.h" #import "BlogService.h" #import "WordPress-Swift.h" -#import -#import -#import + +@import WordPressShared; @interface WPAddPostCategoryViewController () diff --git a/WordPress/Classes/ViewRelated/Post/PostEditor+Publish.swift b/WordPress/Classes/ViewRelated/Post/PostEditor+Publish.swift index 352bea7602ce..59a959d05020 100644 --- a/WordPress/Classes/ViewRelated/Post/PostEditor+Publish.swift +++ b/WordPress/Classes/ViewRelated/Post/PostEditor+Publish.swift @@ -1,6 +1,7 @@ import Foundation import WordPressFlux import WordPressUI +import WordPressShared protocol PublishingEditor where Self: UIViewController { var post: AbstractPost { get set } diff --git a/WordPress/Classes/ViewRelated/Post/PostListFooterView.m b/WordPress/Classes/ViewRelated/Post/PostListFooterView.m index da05db3e3b5c..fab7668d858c 100644 --- a/WordPress/Classes/ViewRelated/Post/PostListFooterView.m +++ b/WordPress/Classes/ViewRelated/Post/PostListFooterView.m @@ -1,7 +1,8 @@ #import "PostListFooterView.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; + @interface PostListFooterView() @property (nonatomic, strong) IBOutlet UIActivityIndicatorView *activityView; diff --git a/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m b/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m index 81115d877c4a..b4002853154d 100644 --- a/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m +++ b/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m @@ -12,8 +12,6 @@ #import #import #import "WPGUIConstants.h" -#import -#import #import "WordPress-Swift.h" @import Gridicons; diff --git a/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.h b/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.h index fc8d1d202086..fe53ce2aa7c8 100644 --- a/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.h +++ b/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.h @@ -1,6 +1,5 @@ -#import -#import - +@import UIKit; +@import WordPressSharedObjC; NS_ASSUME_NONNULL_BEGIN diff --git a/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.m b/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.m index e2480941efab..07d6ab022035 100644 --- a/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.m +++ b/WordPress/Classes/ViewRelated/Post/WPStyleGuide+Pages.m @@ -1,8 +1,10 @@ #import "WPStyleGuide+Pages.h" -#import #import #import "WordPress-Swift.h" +@import WordPressShared; +@import WordPressShared; + @implementation WPStyleGuide (Pages) #pragma mark - Page Cell Styles diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderBlockedSiteCell.swift b/WordPress/Classes/ViewRelated/Reader/ReaderBlockedSiteCell.swift index dd1e0424b51d..5f02c77063d1 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderBlockedSiteCell.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderBlockedSiteCell.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared open class ReaderBlockedSiteCell: UITableViewCell { @IBOutlet fileprivate weak var borderedContentView: UIView! diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCrossPostCell.swift b/WordPress/Classes/ViewRelated/Reader/ReaderCrossPostCell.swift index d0690aa7282f..4e4dd224609a 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCrossPostCell.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCrossPostCell.swift @@ -1,7 +1,7 @@ import AlamofireImage import Foundation import AutomatticTracks -import WordPressShared.WPStyleGuide +import WordPressShared open class ReaderCrossPostCell: UITableViewCell { diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderGapMarkerCell.swift b/WordPress/Classes/ViewRelated/Reader/ReaderGapMarkerCell.swift index b62bc2cb1c53..aba56fb9990c 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderGapMarkerCell.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderGapMarkerCell.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared open class ReaderGapMarkerCell: UITableViewCell { @IBOutlet fileprivate weak var tearBackgroundView: UIView! diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderListStreamHeader.swift b/WordPress/Classes/ViewRelated/Reader/ReaderListStreamHeader.swift index 6369c7d6d80e..cf6728c8b1a8 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderListStreamHeader.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderListStreamHeader.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared @objc open class ReaderListStreamHeader: UIView, ReaderStreamHeader { @IBOutlet fileprivate weak var borderedView: UIView! diff --git a/WordPress/Classes/ViewRelated/Site Creation/Final Assembly/SiteCreationRequest+Validation.swift b/WordPress/Classes/ViewRelated/Site Creation/Final Assembly/SiteCreationRequest+Validation.swift index 2b5654bda330..30f0eac99586 100644 --- a/WordPress/Classes/ViewRelated/Site Creation/Final Assembly/SiteCreationRequest+Validation.swift +++ b/WordPress/Classes/ViewRelated/Site Creation/Final Assembly/SiteCreationRequest+Validation.swift @@ -1,6 +1,7 @@ import Foundation import WordPressKit +import WordPressShared // MARK: SiteCreationRequest diff --git a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m index 61b345924ce5..cc9e01150f8d 100644 --- a/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m +++ b/WordPress/Classes/ViewRelated/Suggestions/SuggestionsTableViewCell.m @@ -1,7 +1,8 @@ #import "SuggestionsTableViewCell.h" -#import #import "WordPress-Swift.h" +@import WordPressShared; + NSInteger const SuggestionsTableViewCellIconSize = 24; @implementation SuggestionsTableViewCell diff --git a/WordPress/Classes/ViewRelated/System/WPTabBarController.m b/WordPress/Classes/ViewRelated/System/WPTabBarController.m index 367c581aee4c..53f151c0e382 100644 --- a/WordPress/Classes/ViewRelated/System/WPTabBarController.m +++ b/WordPress/Classes/ViewRelated/System/WPTabBarController.m @@ -8,7 +8,6 @@ #import "BlogListViewController.h" #import "BlogDetailsViewController.h" #import "WPScrollableViewController.h" -#import #import "WPAppAnalytics.h" #import "WordPress-Swift.h" diff --git a/WordPress/Classes/ViewRelated/Themes/ThemeBrowserCell.swift b/WordPress/Classes/ViewRelated/Themes/ThemeBrowserCell.swift index 90cd253a9fe8..bda16a68d694 100644 --- a/WordPress/Classes/ViewRelated/Themes/ThemeBrowserCell.swift +++ b/WordPress/Classes/ViewRelated/Themes/ThemeBrowserCell.swift @@ -1,5 +1,5 @@ import Foundation -import WordPressShared.WPStyleGuide +import WordPressShared import CocoaLumberjack /// Actions provided in cell button triggered action sheet diff --git a/WordPress/Classes/ViewRelated/Themes/ThemeBrowserViewController.swift b/WordPress/Classes/ViewRelated/Themes/ThemeBrowserViewController.swift index 31465fbbafa2..deeb7bdd3341 100644 --- a/WordPress/Classes/ViewRelated/Themes/ThemeBrowserViewController.swift +++ b/WordPress/Classes/ViewRelated/Themes/ThemeBrowserViewController.swift @@ -1,7 +1,6 @@ import Foundation import CocoaLumberjack -import WordPressShared.WPAnalytics -import WordPressShared.WPStyleGuide +import WordPressShared /** * @brief Support for filtering themes by purchasability diff --git a/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m b/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m index 94da7ceb48b6..b9c1dc537fa8 100644 --- a/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m +++ b/WordPress/Classes/ViewRelated/Tools/SettingsMultiTextViewController.m @@ -1,8 +1,8 @@ #import "SettingsMultiTextViewController.h" -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + static CGVector const SettingsTextPadding = {11.0f, 3.0f}; static CGFloat const SettingsMinHeight = 82.0f; diff --git a/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m b/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m index 7b3e078a71e8..9a5fdc8df84a 100644 --- a/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m +++ b/WordPress/Classes/ViewRelated/Tools/SettingsSelectionViewController.m @@ -1,11 +1,10 @@ #import "SettingsSelectionViewController.h" #import "SettingsTextViewController.h" #import "NSDictionary+SafeExpectations.h" -#import -#import -#import #import "WordPress-Swift.h" +@import WordPressShared; + NSString * const SettingsSelectionTitleKey = @"Title"; NSString * const SettingsSelectionTitlesKey = @"Titles"; NSString * const SettingsSelectionValuesKey = @"Values"; diff --git a/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m b/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m index bc38de65b144..a94bd77bfc45 100644 --- a/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m +++ b/WordPress/Classes/ViewRelated/Tools/SettingsTextViewController.m @@ -1,9 +1,7 @@ #import "SettingsTextViewController.h" -#import -#import #import "WordPress-Swift.h" - +@import WordPressShared; #pragma mark - Constants diff --git a/WordPress/Classes/ViewRelated/Views/NavigationTitleView.swift b/WordPress/Classes/ViewRelated/Views/NavigationTitleView.swift index c4ee485f501d..72ae23ac7f5d 100644 --- a/WordPress/Classes/ViewRelated/Views/NavigationTitleView.swift +++ b/WordPress/Classes/ViewRelated/Views/NavigationTitleView.swift @@ -1,6 +1,6 @@ import Foundation import UIKit -import WordPressShared.WPFontManager +import WordPressShared open class NavigationTitleView: UIView { @objc public let titleLabel = UILabel(frame: defaultTitleFrame) diff --git a/WordPress/Classes/ViewRelated/Views/VerticallyStackedButton.m b/WordPress/Classes/ViewRelated/Views/VerticallyStackedButton.m index d560c15288be..189c2bb18869 100644 --- a/WordPress/Classes/ViewRelated/Views/VerticallyStackedButton.m +++ b/WordPress/Classes/ViewRelated/Views/VerticallyStackedButton.m @@ -1,7 +1,6 @@ #import "VerticallyStackedButton.h" -#import -#import +@import WordPressShared; static const CGFloat ImageLabelSeparation = 2.f; static const CGFloat LabelFontSize = 11.f; diff --git a/WordPress/Classes/ViewRelated/Views/WPUploadStatusButton.m b/WordPress/Classes/ViewRelated/Views/WPUploadStatusButton.m index 5142c87c9ab3..c81b1599bc45 100644 --- a/WordPress/Classes/ViewRelated/Views/WPUploadStatusButton.m +++ b/WordPress/Classes/ViewRelated/Views/WPUploadStatusButton.m @@ -1,6 +1,7 @@ #import "WPUploadStatusButton.h" -#import #import "WordPress-Swift.h" + +@import WordPressShared; @import WordPressUI; diff --git a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift index fe3d05a1ff81..35c1bf82645d 100644 --- a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift +++ b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift @@ -1,4 +1,5 @@ import Foundation +import WordPressShared struct MigrationAnalyticsTracker { // MARK: - Track Method diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 0e5635e22fd8..09b9efc24f44 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -452,6 +452,13 @@ 0C0DF85D2C2DB60100011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF85C2C2DB60100011B7D /* WordPressUI */; }; 0C0DF85F2C2DB61300011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF85E2C2DB61300011B7D /* WordPressUI */; }; 0C0DF8612C2DB62E00011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8602C2DB62E00011B7D /* WordPressUI */; }; + 0C0DF8642C2DBF1500011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8632C2DBF1500011B7D /* WordPressShared */; }; + 0C0DF8662C2DBF3F00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8652C2DBF3F00011B7D /* WordPressShared */; }; + 0C0DF8682C2DBFE000011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8672C2DBFE000011B7D /* WordPressShared */; }; + 0C0DF86A2C2DC01100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8692C2DC01100011B7D /* WordPressShared */; }; + 0C0DF86C2C2DC01A00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF86B2C2DC01A00011B7D /* WordPressShared */; }; + 0C0DF86E2C2DC05B00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF86D2C2DC05B00011B7D /* WordPressShared */; }; + 0C0DF8702C2DC06C00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF86F2C2DC06C00011B7D /* WordPressShared */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -7297,7 +7304,6 @@ 027AC5202278983F0033E56E /* DomainCreditEligibilityTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainCreditEligibilityTests.swift; sourceTree = ""; }; 02BE5CBF2281B53F00E351BA /* RegisterDomainDetailsViewModelLoadingStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegisterDomainDetailsViewModelLoadingStateTests.swift; sourceTree = ""; }; 02BF30522271D7F000616558 /* DomainCreditRedemptionSuccessViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DomainCreditRedemptionSuccessViewController.swift; sourceTree = ""; }; - 02BF978AFC1EFE50CFD558C2 /* Pods-JetpackStatsWidgets.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.release.xcconfig"; sourceTree = ""; }; 02D75D9822793EA2003FF09A /* BlogDetailsSectionFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogDetailsSectionFooterView.swift; sourceTree = ""; }; 03216EC5279946CA00D444CA /* PublishDatePickerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PublishDatePickerViewController.swift; sourceTree = ""; }; 069A4AA52664448F00413FA9 /* GutenbergFeaturedImageHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergFeaturedImageHelper.swift; sourceTree = ""; }; @@ -9318,7 +9324,6 @@ 4AFB1A802A9C08CE007CE165 /* StoppableProgressIndicatorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoppableProgressIndicatorView.swift; sourceTree = ""; }; 4AFB8FBE2824999400A2F4B2 /* ContextManager+Helpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "ContextManager+Helpers.swift"; sourceTree = ""; }; 4D520D4E22972BC9002F5924 /* acknowledgements.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = acknowledgements.html; path = "../Pods/Target Support Files/Pods-Apps-WordPress/acknowledgements.html"; sourceTree = ""; }; - 4D670B9448DF9991366CF42D /* Pods_JetpackStatsWidgets.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackStatsWidgets.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 51A5F017948878F7E26979A0 /* Pods-Apps-WordPress.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-WordPress.release.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-WordPress/Pods-Apps-WordPress.release.xcconfig"; sourceTree = ""; }; 56885C902A7D15930027C78F /* HTMLEditorScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HTMLEditorScreen.swift; sourceTree = ""; }; 56FEDB6A28783D8F00E1EA93 /* WordPress 145.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 145.xcdatamodel"; sourceTree = ""; }; @@ -9450,7 +9455,6 @@ 5DFA7EC21AF7CB910072023B /* Pages.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Pages.storyboard; sourceTree = ""; }; 5E48AA7F709A5B0F2318A7E3 /* Pods-JetpackDraftActionExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackDraftActionExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackDraftActionExtension/Pods-JetpackDraftActionExtension.release-internal.xcconfig"; sourceTree = ""; }; 67832AB9D81652460A80BE66 /* Pods-Apps-Jetpack.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release-internal.xcconfig"; sourceTree = ""; }; - 6C1B070FAD875CA331772B57 /* Pods-JetpackStatsWidgets.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.release-alpha.xcconfig"; sourceTree = ""; }; 6E5BA46826A59D620043A6F2 /* SupportScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportScreenTests.swift; sourceTree = ""; }; 6EC71EC22689A67400ACC0A0 /* SupportScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportScreen.swift; sourceTree = ""; }; 6EDC0E8E105881A800F68A1D /* iTunesArtwork */ = {isa = PBXFileReference; lastKnownFileType = file; path = iTunesArtwork; sourceTree = ""; }; @@ -9920,7 +9924,6 @@ 85DA8C4318F3F29A0074C8A4 /* WPAnalyticsTrackerWPCom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPAnalyticsTrackerWPCom.m; sourceTree = ""; }; 85ED98AA17DFB17200090D0B /* iTunesArtwork@2x */ = {isa = PBXFileReference; lastKnownFileType = file; path = "iTunesArtwork@2x"; sourceTree = ""; }; 85F8E19C1B018698000859BB /* PushAuthenticationServiceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushAuthenticationServiceTests.swift; sourceTree = ""; }; - 8A21014FBE43ADE551F4ECB4 /* Pods-JetpackIntents.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.release-alpha.xcconfig"; sourceTree = ""; }; 8B05D29023A9417E0063B9AA /* WPMediaEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WPMediaEditor.swift; sourceTree = ""; }; 8B05D29223AA572A0063B9AA /* GutenbergMediaEditorImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GutenbergMediaEditorImage.swift; sourceTree = ""; }; 8B0732E8242BA1F000E7FBD3 /* PrepublishingHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrepublishingHeaderView.swift; sourceTree = ""; }; @@ -10346,10 +10349,8 @@ 9F8E38BD209C6DE200454E3C /* NotificationSiteSubscriptionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSiteSubscriptionViewController.swift; sourceTree = ""; }; A01C542D0E24E88400D411F2 /* SystemConfiguration.framework */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; }; A01C55470E25E0D000D411F2 /* defaultPostTemplate.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = defaultPostTemplate.html; path = Resources/HTML/defaultPostTemplate.html; sourceTree = ""; }; - A0D83E08D5D2573348DE8926 /* Pods-JetpackIntents.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.release-internal.xcconfig"; sourceTree = ""; }; A0E293EF0E21027E00C6919C /* WPAddPostCategoryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WPAddPostCategoryViewController.h; sourceTree = ""; }; A0E293F00E21027E00C6919C /* WPAddPostCategoryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = WPAddPostCategoryViewController.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - A1DD7BB9C25967442493CC19 /* Pods_JetpackIntents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JetpackIntents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; A20971B419B0BC390058F395 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/Localizable.strings"; sourceTree = ""; }; A20971B519B0BC390058F395 /* en-GB */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "en-GB"; path = "en-GB.lproj/InfoPlist.strings"; sourceTree = ""; }; A20971B719B0BC570058F395 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "pt-BR.lproj/Localizable.strings"; sourceTree = ""; }; @@ -10362,7 +10363,6 @@ ACACE3AD28D729FA000992F9 /* NoResultsViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NoResultsViewControllerTests.swift; sourceTree = ""; }; ACBAB5FC0E121C7300F38795 /* PostSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostSettingsViewController.h; sourceTree = ""; usesTabs = 0; }; ACBAB5FD0E121C7300F38795 /* PostSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostSettingsViewController.m; sourceTree = ""; usesTabs = 0; }; - ADE06D6829F9044164BBA5AB /* Pods-JetpackIntents.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.release.xcconfig"; sourceTree = ""; }; ADF544C0195A0F620092213D /* CustomHighlightButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomHighlightButton.h; sourceTree = ""; }; ADF544C1195A0F620092213D /* CustomHighlightButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomHighlightButton.m; sourceTree = ""; }; AE2F3124270B6DA000B2A9C2 /* Scanner+QuotedText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Scanner+QuotedText.swift"; sourceTree = ""; }; @@ -10569,7 +10569,6 @@ BED4D8321FF11E3800A11345 /* LoginFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginFlow.swift; sourceTree = ""; }; BED4D8341FF1208400A11345 /* AztecEditorScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AztecEditorScreen.swift; sourceTree = ""; }; BED4D83A1FF13B8A00A11345 /* EditorPublishEpilogueScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditorPublishEpilogueScreen.swift; sourceTree = ""; }; - C2988A406A3D5697C2984F3E /* Pods-JetpackStatsWidgets.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.release-internal.xcconfig"; sourceTree = ""; }; C314543A262770BE005B216B /* BlogServiceAuthorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogServiceAuthorTests.swift; sourceTree = ""; }; C31466CB2939950900D62FC7 /* MigrationLoadWordPressViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MigrationLoadWordPressViewController.swift; sourceTree = ""; }; C31852A029670F8100A78BE9 /* JetpackScanViewController+JetpackBannerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "JetpackScanViewController+JetpackBannerViewController.swift"; sourceTree = ""; }; @@ -10758,7 +10757,6 @@ CEBD3EA90FF1BA3B00C1396E /* Blog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Blog.h; sourceTree = ""; }; CEBD3EAA0FF1BA3B00C1396E /* Blog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Blog.m; sourceTree = ""; }; CECEEB542823164800A28ADE /* MediaCacheSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaCacheSettingsViewController.swift; sourceTree = ""; }; - D67306CD28F2440FF6B0065C /* Pods-JetpackIntents.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackIntents.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackIntents/Pods-JetpackIntents.debug.xcconfig"; sourceTree = ""; }; D8071630203DA23700B32FD9 /* Accessible.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Accessible.swift; sourceTree = ""; }; D809E685203F0215001AA0DE /* OldReaderPostCardCellTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OldReaderPostCardCellTests.swift; sourceTree = ""; }; D81322B22050F9110067714D /* NotificationName+Names.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationName+Names.swift"; sourceTree = ""; }; @@ -11193,7 +11191,6 @@ E6F2787B21BC1A48008B4DB5 /* PlanGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PlanGroup.swift; path = Classes/Models/PlanGroup.swift; sourceTree = SOURCE_ROOT; }; E6F2787E21BC1A49008B4DB5 /* PlanFeature.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlanFeature.swift; sourceTree = ""; }; E6FACB1D1EC675E300284AC7 /* GravatarProfile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GravatarProfile.swift; sourceTree = ""; }; - E850CD4B77CF21E683104B5A /* Pods-JetpackStatsWidgets.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackStatsWidgets.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackStatsWidgets/Pods-JetpackStatsWidgets.debug.xcconfig"; sourceTree = ""; }; EA14534229AD874C001F3143 /* JetpackUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JetpackUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; EA14534629AEF479001F3143 /* JetpackUITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = JetpackUITests.xctestplan; sourceTree = ""; }; EA78189327596B2F00554DFA /* ContactUsScreen.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactUsScreen.swift; sourceTree = ""; }; @@ -11878,6 +11875,7 @@ buildActionMask = 2147483647; files = ( 0C0DF8612C2DB62E00011B7D /* WordPressUI in Frameworks */, + 0C0DF8702C2DC06C00011B7D /* WordPressShared in Frameworks */, 3FFB3F202AFC70B400A742B0 /* JetpackStatsWidgetsCore in Frameworks */, 4A972D162C239F23006AE0F0 /* WordPressKit.framework in Frameworks */, 0107E0DE28F97D5000DE87DB /* SwiftUI.framework in Frameworks */, @@ -11971,6 +11969,7 @@ 4A1261E22C22FF690002B427 /* NSObject-SafeExpectations in Frameworks */, 4AD028572C22ED98004FBDD0 /* UIDeviceIdentifier in Frameworks */, 4A65FC4A2C23659F006ED20C /* wpxmlrpc in Frameworks */, + 0C0DF8662C2DBF3F00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -11990,6 +11989,7 @@ buildActionMask = 2147483647; files = ( 4A65FC4F2C23666B006ED20C /* Gridicons in Frameworks */, + 0C0DF8682C2DBFE000011B7D /* WordPressShared in Frameworks */, 4A972D442C23B6D5006AE0F0 /* WordPressKit.framework in Frameworks */, 4A3AB6532C22F702006E0FA8 /* SVProgressHUD in Frameworks */, 4AD0285B2C22EE00004FBDD0 /* UIDeviceIdentifier in Frameworks */, @@ -12050,6 +12050,7 @@ 4A972D1B2C239F3C006AE0F0 /* WordPressKit.framework in Frameworks */, 4A972D282C239FA7006AE0F0 /* ZIPFoundation in Frameworks */, 4A972D302C23A2AF006AE0F0 /* CocoaLumberjackSwift in Frameworks */, + 0C0DF86C2C2DC01A00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12065,6 +12066,7 @@ 4A972D222C239F7C006AE0F0 /* WordPressKit.framework in Frameworks */, 223EA61E212A7C26A456C32C /* Pods_JetpackDraftActionExtension.framework in Frameworks */, 4A972D362C23A325006AE0F0 /* ZIPFoundation in Frameworks */, + 0C0DF86A2C2DC01100011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12074,6 +12076,7 @@ files = ( 0C0DF85B2C2DB5EC00011B7D /* WordPressUI in Frameworks */, 4A972D0F2C239EED006AE0F0 /* WordPressKit.framework in Frameworks */, + 0C0DF86E2C2DC05B00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12144,6 +12147,7 @@ FABB262C2602FC2C00C8785C /* UIKit.framework in Frameworks */, 4A972D3A2C23A3B0006AE0F0 /* ZendeskSupportSDK in Frameworks */, 4A972D3C2C23A3D2006AE0F0 /* Reachability in Frameworks */, + 0C0DF8642C2DBF1500011B7D /* WordPressShared in Frameworks */, FABB262D2602FC2C00C8785C /* QuartzCore.framework in Frameworks */, 1DF7A0CB2B9F66810003CBA3 /* SwiftSoup in Frameworks */, FABB262E2602FC2C00C8785C /* MediaPlayer.framework in Frameworks */, @@ -13327,7 +13331,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA = { + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -22949,6 +22953,7 @@ 3FFB3F1F2AFC70B400A742B0 /* JetpackStatsWidgetsCore */, 4A972D142C239F0D006AE0F0 /* CocoaLumberjackSwift */, 0C0DF8602C2DB62E00011B7D /* WordPressUI */, + 0C0DF86F2C2DC06C00011B7D /* WordPressShared */, ); productName = WordPressHomeWidgetTodayExtension; productReference = 0107E0EA28F97D5000DE87DB /* JetpackStatsWidgets.appex */; @@ -23070,6 +23075,7 @@ 4AD028562C22ED98004FBDD0 /* UIDeviceIdentifier */, 4A1261E12C22FF690002B427 /* NSObject-SafeExpectations */, 4A65FC492C23659F006ED20C /* wpxmlrpc */, + 0C0DF8652C2DBF3F00011B7D /* WordPressShared */, ); productName = WordPressKit; productReference = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; @@ -23122,6 +23128,7 @@ 4A65FC4C2C236649006ED20C /* NSURL+IDN */, 4A65FC4E2C23666B006ED20C /* Gridicons */, 0C86B1A42C2DB2B4001AB70C /* WordPressUI */, + 0C0DF8672C2DBFE000011B7D /* WordPressShared */, ); productName = WordPressAuthenticator; productReference = 4AD953B42C21451700D0EEFA /* WordPressAuthenticator.framework */; @@ -23239,6 +23246,7 @@ 4A972D312C23A2CD006AE0F0 /* Reachability */, 4A972D332C23A30C006AE0F0 /* Gridicons */, 0C0DF85C2C2DB60100011B7D /* WordPressUI */, + 0C0DF86B2C2DC01A00011B7D /* WordPressShared */, ); productName = WordPressShare; productReference = 8096212328E540D700940A5D /* JetpackShareExtension.appex */; @@ -23268,6 +23276,7 @@ 4A972D352C23A325006AE0F0 /* ZIPFoundation */, 4A972D372C23A377006AE0F0 /* Gridicons */, 0C0DF85E2C2DB61300011B7D /* WordPressUI */, + 0C0DF8692C2DC01100011B7D /* WordPressShared */, ); productName = WordPressDraftActionExtension; productReference = 8096218528E55C9400940A5D /* JetpackDraftActionExtension.appex */; @@ -23290,6 +23299,7 @@ name = JetpackNotificationServiceExtension; packageProductDependencies = ( 0C0DF85A2C2DB5EC00011B7D /* WordPressUI */, + 0C0DF86D2C2DC05B00011B7D /* WordPressShared */, ); productName = WordPressNotificationServiceExtension; productReference = 80F6D05428EE866A00953C1A /* JetpackNotificationServiceExtension.appex */; @@ -23440,6 +23450,7 @@ 4A972D3B2C23A3D2006AE0F0 /* Reachability */, 4A972D3D2C23A3ED006AE0F0 /* Starscream */, 0C86B1A02C2DB2A7001AB70C /* WordPressUI */, + 0C0DF8632C2DBF1500011B7D /* WordPressShared */, ); productName = WordPress; productReference = FABB26522602FC2C00C8785C /* Jetpack.app */; @@ -23661,7 +23672,7 @@ bg, sk, ); - mainGroup = 29B97314FDCFA39411CA2CEA; + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; packageReferences = ( 3FF1442E266F3C2400138163 /* XCRemoteSwiftPackageReference "ScreenObject" */, 3FC2C33B26C4CF0A00C6D98F /* XCRemoteSwiftPackageReference "XCUITestHelpers" */, @@ -23693,6 +23704,7 @@ 4AE417E22C23866900B383AF /* XCRemoteSwiftPackageReference "support_sdk_ios" */, 4A0CB27B2C23883B00A006B0 /* XCRemoteSwiftPackageReference "CocoaLumberjack" */, 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */, + 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */, ); productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */; projectDirPath = ""; @@ -25436,11 +25448,11 @@ files = ( ); inputPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, ); outputPaths = ( "", @@ -25597,13 +25609,13 @@ files = ( ); inputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, ); inputPaths = ( ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, ); outputPaths = ( ); @@ -36478,6 +36490,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/wordpress-mobile/WordPress-iOS-Shared"; + requirement = { + branch = "task/remove-swiftlint"; + kind = branch; + }; + }; 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/wordpress-mobile/WordPressUI-iOS"; @@ -36757,6 +36777,41 @@ package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; productName = WordPressUI; }; + 0C0DF8632C2DBF1500011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF8652C2DBF3F00011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF8672C2DBFE000011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF8692C2DC01100011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF86B2C2DC01A00011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF86D2C2DC05B00011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF86F2C2DC06C00011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; 0C86B1A02C2DB2A7001AB70C /* WordPressUI */ = { isa = XCSwiftPackageProductDependency; package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; diff --git a/WordPress/WordPressTest/ViewRelated/Blog/Style/WPStyleGuide+BlogTests.swift b/WordPress/WordPressTest/ViewRelated/Blog/Style/WPStyleGuide+BlogTests.swift index 1a8e0a6d68e6..a599925e0fbf 100644 --- a/WordPress/WordPressTest/ViewRelated/Blog/Style/WPStyleGuide+BlogTests.swift +++ b/WordPress/WordPressTest/ViewRelated/Blog/Style/WPStyleGuide+BlogTests.swift @@ -1,5 +1,6 @@ import XCTest -import WordPressShared.WPStyleGuide +import WordPressShared + @testable import WordPress class WPStyleGuide_BlogTests: XCTestCase { diff --git a/WordPress/WordPressTest/WPAppAnalyticsTests.m b/WordPress/WordPressTest/WPAppAnalyticsTests.m index 73a9aacd71e7..f6f19a90badf 100644 --- a/WordPress/WordPressTest/WPAppAnalyticsTests.m +++ b/WordPress/WordPressTest/WPAppAnalyticsTests.m @@ -1,9 +1,10 @@ -#import #import #import "AccountService.h" #import "WPAppAnalytics.h" #import "WPAnalyticsTrackerWPCom.h" + +@import WordPressShared; @import OCMock; typedef void(^OCMockInvocationBlock)(NSInvocation* invocation); diff --git a/WordPressAuthenticator/Sources/Analytics/AuthenticatorAnalyticsTracker.swift b/WordPressAuthenticator/Sources/Analytics/AuthenticatorAnalyticsTracker.swift index 9f229931aeae..c0b810f0735e 100644 --- a/WordPressAuthenticator/Sources/Analytics/AuthenticatorAnalyticsTracker.swift +++ b/WordPressAuthenticator/Sources/Analytics/AuthenticatorAnalyticsTracker.swift @@ -1,4 +1,5 @@ import Foundation +import WordPressShared /// Implements the analytics tracking logic for our sign in flow. /// diff --git a/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticatorDelegateProtocol.swift b/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticatorDelegateProtocol.swift index 3282b931c164..81ff500c30cd 100644 --- a/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticatorDelegateProtocol.swift +++ b/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticatorDelegateProtocol.swift @@ -1,3 +1,6 @@ +import Foundation +import WordPressShared + // MARK: - WordPressAuthenticator Delegate Protocol // public protocol WordPressAuthenticatorDelegate: AnyObject { diff --git a/WordPressAuthenticator/Sources/Extensions/UIButton+Styles.swift b/WordPressAuthenticator/Sources/Extensions/UIButton+Styles.swift index d557d8a98f29..cd05f518e53f 100644 --- a/WordPressAuthenticator/Sources/Extensions/UIButton+Styles.swift +++ b/WordPressAuthenticator/Sources/Extensions/UIButton+Styles.swift @@ -1,4 +1,5 @@ import UIKit +import WordPressShared extension UIButton { /// Applies the style that looks like a plain text link. diff --git a/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.h b/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.h index 42916678077b..ff0aa45fbdfe 100644 --- a/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.h +++ b/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.h @@ -1,9 +1,9 @@ #import -@import WordPressShared; - NS_ASSUME_NONNULL_BEGIN +@protocol WordPressLoggingDelegate; + FOUNDATION_EXTERN id _Nullable WPAuthenticatorGetLoggingDelegate(void); FOUNDATION_EXTERN void WPAuthenticatorSetLoggingDelegate(id _Nullable logger); diff --git a/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.m b/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.m index fbd7c33a06dd..bb5a448bdcd4 100644 --- a/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.m +++ b/WordPressAuthenticator/Sources/Logging/WPAuthenticatorLogging.m @@ -1,5 +1,7 @@ #import "WPAuthenticatorLogging.h" +@import WordPressShared; + static id wordPressAuthenticatorLogger = nil; id _Nullable WPAuthenticatorGetLoggingDelegate(void) diff --git a/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift b/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift index ad077cf39afb..507bcbf11df3 100644 --- a/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift +++ b/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift @@ -1,5 +1,6 @@ import UIKit import WordPressKit +import WordPressShared public protocol NUXButtonViewControllerDelegate: AnyObject { func primaryButtonPressed() diff --git a/WordPressAuthenticator/Sources/NUX/Button/NUXStackedButtonsViewController.swift b/WordPressAuthenticator/Sources/NUX/Button/NUXStackedButtonsViewController.swift index c152beb78354..abf5b75b5ad8 100644 --- a/WordPressAuthenticator/Sources/NUX/Button/NUXStackedButtonsViewController.swift +++ b/WordPressAuthenticator/Sources/NUX/Button/NUXStackedButtonsViewController.swift @@ -1,4 +1,5 @@ import UIKit +import WordPressShared struct StackedButton { enum StackView { diff --git a/WordPressAuthenticator/Sources/NUX/WPNUXMainButton.m b/WordPressAuthenticator/Sources/NUX/WPNUXMainButton.m index 2445907a350e..070f4a93bdf5 100644 --- a/WordPressAuthenticator/Sources/NUX/WPNUXMainButton.m +++ b/WordPressAuthenticator/Sources/NUX/WPNUXMainButton.m @@ -1,5 +1,6 @@ #import "WPNUXMainButton.h" -#import + +@import WordPressShared; @implementation WPNUXMainButton { UIActivityIndicatorView *activityIndicator; diff --git a/WordPressAuthenticator/Sources/NUX/WPNUXPrimaryButton.m b/WordPressAuthenticator/Sources/NUX/WPNUXPrimaryButton.m index a91eaa24a490..9d3dc6f24f3e 100644 --- a/WordPressAuthenticator/Sources/NUX/WPNUXPrimaryButton.m +++ b/WordPressAuthenticator/Sources/NUX/WPNUXPrimaryButton.m @@ -1,5 +1,6 @@ #import "WPNUXPrimaryButton.h" -#import + +@import WordPressShared; @implementation WPNUXPrimaryButton diff --git a/WordPressAuthenticator/Sources/NUX/WPNUXSecondaryButton.m b/WordPressAuthenticator/Sources/NUX/WPNUXSecondaryButton.m index d2857ab78d47..6718127a0e94 100644 --- a/WordPressAuthenticator/Sources/NUX/WPNUXSecondaryButton.m +++ b/WordPressAuthenticator/Sources/NUX/WPNUXSecondaryButton.m @@ -1,6 +1,6 @@ #import "WPNUXSecondaryButton.h" -#import +@import WordPressShared; static UIEdgeInsets const WPNUXSecondaryButtonTitleEdgeInsets = {0, 15.0, 0, 15.0}; diff --git a/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m b/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m index d96939500234..c0cf101d0c71 100644 --- a/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m +++ b/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m @@ -1,11 +1,11 @@ #import "WPWalkthroughOverlayView.h" #import "WPNUXPrimaryButton.h" #import "WPNUXSecondaryButton.h" -#import -#import @import WordPressUI; @import WordPressUIObjC; +@import WordPressShared; +@import WordPressSharedObjC; @interface WPWalkthroughOverlayView() { UIImageView *_logo; diff --git a/WordPressAuthenticator/Sources/NUX/WPWalkthroughTextField.m b/WordPressAuthenticator/Sources/NUX/WPWalkthroughTextField.m index 03051dd0bf15..1ba9f01ae842 100644 --- a/WordPressAuthenticator/Sources/NUX/WPWalkthroughTextField.m +++ b/WordPressAuthenticator/Sources/NUX/WPWalkthroughTextField.m @@ -1,5 +1,6 @@ #import "WPWalkthroughTextField.h" -#import + +@import WordPressShared; NSInteger const LeftImageSpacing = 8; diff --git a/WordPressAuthenticator/Sources/Services/LoginFacade.h b/WordPressAuthenticator/Sources/Services/LoginFacade.h index f4414162eddd..13c37162ef03 100644 --- a/WordPressAuthenticator/Sources/Services/LoginFacade.h +++ b/WordPressAuthenticator/Sources/Services/LoginFacade.h @@ -1,8 +1,5 @@ #import -@import WordPressShared; - - NS_ASSUME_NONNULL_BEGIN @class LoginFields; diff --git a/WordPressAuthenticator/Sources/Signin/AppleAuthenticator.swift b/WordPressAuthenticator/Sources/Signin/AppleAuthenticator.swift index 8b8512b78299..0d35dad65bcd 100644 --- a/WordPressAuthenticator/Sources/Signin/AppleAuthenticator.swift +++ b/WordPressAuthenticator/Sources/Signin/AppleAuthenticator.swift @@ -2,6 +2,7 @@ import Foundation import AuthenticationServices import WordPressKit import SVProgressHUD +import WordPressShared @objc protocol AppleAuthenticatorDelegate { func showWPComLogin(loginFields: LoginFields) diff --git a/WordPressAuthenticator/Sources/Signup/SignupGoogleViewController.swift b/WordPressAuthenticator/Sources/Signup/SignupGoogleViewController.swift index 25e3570caf91..753613792dc0 100644 --- a/WordPressAuthenticator/Sources/Signup/SignupGoogleViewController.swift +++ b/WordPressAuthenticator/Sources/Signup/SignupGoogleViewController.swift @@ -1,3 +1,6 @@ +import UIKit +import WordPressShared + /// View controller that handles the google signup flow /// class SignupGoogleViewController: LoginViewController { diff --git a/WordPressAuthenticator/Sources/Unified Auth/GoogleAuthenticator.swift b/WordPressAuthenticator/Sources/Unified Auth/GoogleAuthenticator.swift index d995bf75ed23..3ce2db41dcdc 100644 --- a/WordPressAuthenticator/Sources/Unified Auth/GoogleAuthenticator.swift +++ b/WordPressAuthenticator/Sources/Unified Auth/GoogleAuthenticator.swift @@ -1,5 +1,6 @@ import Foundation import WordPressKit +import WordPressShared import SVProgressHUD /// Contains delegate methods for Google authentication unified auth flow. diff --git a/WordPressAuthenticator/Sources/Unified Auth/View Related/Get Started/GetStartedViewController.swift b/WordPressAuthenticator/Sources/Unified Auth/View Related/Get Started/GetStartedViewController.swift index 0d4d0f53d206..ae4f4c194550 100644 --- a/WordPressAuthenticator/Sources/Unified Auth/View Related/Get Started/GetStartedViewController.swift +++ b/WordPressAuthenticator/Sources/Unified Auth/View Related/Get Started/GetStartedViewController.swift @@ -1,6 +1,7 @@ import UIKit import SafariServices import WordPressKit +import WordPressShared /// The source for the sign in flow for external tracking. public enum SignInSource: Equatable { diff --git a/WordPressAuthenticator/Sources/Unified Auth/View Related/Login/MagicLinkRequestedViewController.swift b/WordPressAuthenticator/Sources/Unified Auth/View Related/Login/MagicLinkRequestedViewController.swift index 5aea431582a6..f689dbaca472 100644 --- a/WordPressAuthenticator/Sources/Unified Auth/View Related/Login/MagicLinkRequestedViewController.swift +++ b/WordPressAuthenticator/Sources/Unified Auth/View Related/Login/MagicLinkRequestedViewController.swift @@ -1,5 +1,6 @@ import UIKit import WordPressUI +import WordPressShared final class MagicLinkRequestedViewController: LoginViewController { diff --git a/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextFieldTableViewCell.swift b/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextFieldTableViewCell.swift index 6a03da34f6e4..96f88d5b9c92 100644 --- a/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextFieldTableViewCell.swift +++ b/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextFieldTableViewCell.swift @@ -1,4 +1,5 @@ import UIKit +import WordPressShared /// TextFieldTableViewCell: a textfield with a custom border line in a UITableViewCell. /// diff --git a/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextLinkButtonTableViewCell.swift b/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextLinkButtonTableViewCell.swift index 747a0069af08..bfa85807e4b5 100644 --- a/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextLinkButtonTableViewCell.swift +++ b/WordPressAuthenticator/Sources/Unified Auth/View Related/Reusable Views/TextLinkButtonTableViewCell.swift @@ -1,4 +1,5 @@ import UIKit +import WordPressShared /// TextLinkButtonTableViewCell: a plain button made to look like a text link. /// diff --git a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h index 71b827aafbaa..16ebd99ad4ce 100644 --- a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h +++ b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h @@ -1,9 +1,9 @@ #import -@import WordPressShared; - NS_ASSUME_NONNULL_BEGIN +@protocol WordPressLoggingDelegate; + FOUNDATION_EXTERN id _Nullable WPKitGetLoggingDelegate(void); FOUNDATION_EXTERN void WPKitSetLoggingDelegate(id _Nullable logger); diff --git a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.m b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.m index 59757186ba1d..42cd9e345eb0 100644 --- a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.m +++ b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.m @@ -1,5 +1,7 @@ #import "WPKitLogging.h" +@import WordPressShared; + static id wordPressKitLogger = nil; id _Nullable WPKitGetLoggingDelegate(void) diff --git a/config/WordPressAuthenticator.xcconfig b/config/WordPressAuthenticator.xcconfig index baea9e0e1064..d1f5c2ad652e 100644 --- a/config/WordPressAuthenticator.xcconfig +++ b/config/WordPressAuthenticator.xcconfig @@ -10,5 +10,5 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_TREAT_WARNINGS_AS_ERRORS = NO WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressShared -framework WordPressKit +FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit +OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressKit diff --git a/config/WordPressKit.xcconfig b/config/WordPressKit.xcconfig index 4a16a01dadea..8914e2e41894 100644 --- a/config/WordPressKit.xcconfig +++ b/config/WordPressKit.xcconfig @@ -8,7 +8,3 @@ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = NO SWIFT_TREAT_WARNINGS_AS_ERRORS = NO CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_TREAT_WARNINGS_AS_ERRORS = NO - -WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressShared diff --git a/config/WordPressKitTests.xcconfig b/config/WordPressKitTests.xcconfig index 2122b86bb973..e17c5eed564c 100644 --- a/config/WordPressKitTests.xcconfig +++ b/config/WordPressKitTests.xcconfig @@ -12,8 +12,8 @@ GCC_TREAT_WARNINGS_AS_ERRORS = NO ENABLE_USER_SCRIPT_SANDBOXING = NO WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressShared -framework WordPressKit +FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit +OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressKit PODS_ROOT = ${SRCROOT}/../Pods PODS_CONFIGURATION_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) From f14f2bd1a14dd5745cf809af636779992efeb347 Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 13:47:05 -0400 Subject: [PATCH 04/15] Fix WordPress compilation --- WordPress/WordPress.xcodeproj/project.pbxproj | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 09b9efc24f44..a2cec66185b3 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -459,6 +459,14 @@ 0C0DF86C2C2DC01A00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF86B2C2DC01A00011B7D /* WordPressShared */; }; 0C0DF86E2C2DC05B00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF86D2C2DC05B00011B7D /* WordPressShared */; }; 0C0DF8702C2DC06C00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF86F2C2DC06C00011B7D /* WordPressShared */; }; + 0C0DF8722C2DDCA800011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8712C2DDCA800011B7D /* WordPressUI */; }; + 0C0DF8742C2DDCB000011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8732C2DDCB000011B7D /* WordPressShared */; }; + 0C0DF8762C2DDCC500011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8752C2DDCC500011B7D /* WordPressUI */; }; + 0C0DF8782C2DDCCE00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8772C2DDCCE00011B7D /* WordPressShared */; }; + 0C0DF87A2C2DDCE200011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8792C2DDCE200011B7D /* WordPressUI */; }; + 0C0DF87C2C2DDCEA00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF87B2C2DDCEA00011B7D /* WordPressShared */; }; + 0C0DF87E2C2DDD4900011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF87D2C2DDD4900011B7D /* WordPressUI */; }; + 0C0DF8802C2DDD5100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF87F2C2DDD5100011B7D /* WordPressShared */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -11907,6 +11915,7 @@ 4A91C6CB2C22F45200AD6324 /* AlamofireImage in Frameworks */, 93F2E5421E9E5A350050D489 /* QuickLook.framework in Frameworks */, 08E63FCF2B28E53400747E21 /* DesignSystem in Frameworks */, + 0C0DF87E2C2DDD4900011B7D /* WordPressUI in Frameworks */, 93F2E53E1E9E5A010050D489 /* CoreText.framework in Frameworks */, E185474E1DED8D8800D875D7 /* UserNotifications.framework in Frameworks */, FF75933B1BE2423800814D3B /* Photos.framework in Frameworks */, @@ -11943,6 +11952,7 @@ FD3D6D2C1349F5D30061136A /* ImageIO.framework in Frameworks */, B5AA54D51A8E7510003BDD12 /* WebKit.framework in Frameworks */, 93F2E5401E9E5A180050D489 /* libsqlite3.tbd in Frameworks */, + 0C0DF8802C2DDD5100011B7D /* WordPressShared in Frameworks */, 4A2A359E2C23635D00F47E9C /* Gridicons in Frameworks */, 1DF7A0CD2B9F66970003CBA3 /* SwiftSoup in Frameworks */, 17A8858D2757B97F0071FCA3 /* AutomatticAbout in Frameworks */, @@ -12020,7 +12030,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0C0DF87A2C2DDCE200011B7D /* WordPressUI in Frameworks */, 4A972D3F2C23A4C8006AE0F0 /* WordPressKit.framework in Frameworks */, + 0C0DF87C2C2DDCEA00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12030,11 +12042,13 @@ files = ( 4A2A35942C23623D00F47E9C /* Gridicons in Frameworks */, 4A2A35982C23629000F47E9C /* Reachability in Frameworks */, + 0C0DF8762C2DDCC500011B7D /* WordPressUI in Frameworks */, 4A0CB2832C2388DC00A006B0 /* CocoaLumberjackSwift in Frameworks */, 4A65FC572C23677D006ED20C /* WordPressKit.framework in Frameworks */, 4A3E8C462C238396003628B3 /* Down in Frameworks */, A2C95CCF203760D9372C5857 /* Pods_WordPressDraftActionExtension.framework in Frameworks */, 4A3E8C422C238365003628B3 /* ZIPFoundation in Frameworks */, + 0C0DF8782C2DDCCE00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12094,11 +12108,13 @@ files = ( 4A2A35922C23622F00F47E9C /* Gridicons in Frameworks */, 4A2A35962C23627B00F47E9C /* Reachability in Frameworks */, + 0C0DF8722C2DDCA800011B7D /* WordPressUI in Frameworks */, 4A0CB2812C2388CF00A006B0 /* CocoaLumberjackSwift in Frameworks */, 4A65FC522C236746006ED20C /* WordPressKit.framework in Frameworks */, D0E2AA7C4D4CB1679173958E /* Pods_WordPressShareExtension.framework in Frameworks */, 4A3E8C442C238378003628B3 /* Down in Frameworks */, 4A3E8C482C2383FD003628B3 /* ZIPFoundation in Frameworks */, + 0C0DF8742C2DDCB000011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -23029,6 +23045,8 @@ 4A3E8C4C2C238471003628B3 /* Gifu */, 4AE417E32C23870400B383AF /* ZendeskSupportSDK */, 4A0CB2842C238B7800A006B0 /* CocoaLumberjackSwift */, + 0C0DF87D2C2DDD4900011B7D /* WordPressUI */, + 0C0DF87F2C2DDD5100011B7D /* WordPressShared */, ); productName = WordPress; productReference = 1D6058910D05DD3D006BFB54 /* WordPress.app */; @@ -23190,6 +23208,10 @@ 4A972D422C23A4C8006AE0F0 /* PBXTargetDependency */, ); name = WordPressNotificationServiceExtension; + packageProductDependencies = ( + 0C0DF8792C2DDCE200011B7D /* WordPressUI */, + 0C0DF87B2C2DDCEA00011B7D /* WordPressShared */, + ); productName = WordPressNotificationServiceExtension; productReference = 7358E6B8210BD318002323EB /* WordPressNotificationServiceExtension.appex */; productType = "com.apple.product-type.app-extension"; @@ -23217,6 +23239,8 @@ 4A3E8C412C238365003628B3 /* ZIPFoundation */, 4A3E8C452C238396003628B3 /* Down */, 4A0CB2822C2388DC00A006B0 /* CocoaLumberjackSwift */, + 0C0DF8752C2DDCC500011B7D /* WordPressUI */, + 0C0DF8772C2DDCCE00011B7D /* WordPressShared */, ); productName = WordPressDraftActionExtension; productReference = 74576672202B558C00F42E40 /* WordPressDraftActionExtension.appex */; @@ -23346,6 +23370,8 @@ 4A3E8C432C238378003628B3 /* Down */, 4A3E8C472C2383FD003628B3 /* ZIPFoundation */, 4A0CB2802C2388CF00A006B0 /* CocoaLumberjackSwift */, + 0C0DF8712C2DDCA800011B7D /* WordPressUI */, + 0C0DF8732C2DDCB000011B7D /* WordPressShared */, ); productName = WordPressShare; productReference = 932225A71C7CE50300443B02 /* WordPressShareExtension.appex */; @@ -36812,6 +36838,46 @@ package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; productName = WordPressShared; }; + 0C0DF8712C2DDCA800011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C0DF8732C2DDCB000011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF8752C2DDCC500011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C0DF8772C2DDCCE00011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF8792C2DDCE200011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C0DF87B2C2DDCEA00011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF87D2C2DDD4900011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; + 0C0DF87F2C2DDD5100011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; 0C86B1A02C2DB2A7001AB70C /* WordPressUI */ = { isa = XCSwiftPackageProductDependency; package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; From eb5d31eb49f0adfaa291b0098a92cb683a962b7a Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 13:54:35 -0400 Subject: [PATCH 05/15] Fix WordPressKit being embeded in the wrong targets --- WordPress/WordPress.xcodeproj/project.pbxproj | 137 +++--------------- 1 file changed, 17 insertions(+), 120 deletions(-) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index a2cec66185b3..bc0fd9efe267 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -467,6 +467,8 @@ 0C0DF87C2C2DDCEA00011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF87B2C2DDCEA00011B7D /* WordPressShared */; }; 0C0DF87E2C2DDD4900011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF87D2C2DDD4900011B7D /* WordPressUI */; }; 0C0DF8802C2DDD5100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF87F2C2DDD5100011B7D /* WordPressShared */; }; + 0C0DF8812C2DDE7900011B7D /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; + 0C0DF8822C2DDE7900011B7D /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -1449,9 +1451,7 @@ 4A65FC4D2C236649006ED20C /* NSURL+IDN in Frameworks */ = {isa = PBXBuildFile; productRef = 4A65FC4C2C236649006ED20C /* NSURL+IDN */; }; 4A65FC4F2C23666B006ED20C /* Gridicons in Frameworks */ = {isa = PBXBuildFile; productRef = 4A65FC4E2C23666B006ED20C /* Gridicons */; }; 4A65FC522C236746006ED20C /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A65FC532C236746006ED20C /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A65FC572C23677D006ED20C /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A65FC582C23677D006ED20C /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A690C122BA3F4AD00A8E0C5 /* WPUserAgent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A690C112BA3F4AD00A8E0C5 /* WPUserAgent.swift */; }; 4A690C132BA3F4AD00A8E0C5 /* WPUserAgent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A690C112BA3F4AD00A8E0C5 /* WPUserAgent.swift */; }; 4A690C152BA791B100A8E0C5 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 4A690C142BA790BC00A8E0C5 /* PrivacyInfo.xcprivacy */; }; @@ -1489,15 +1489,11 @@ 4A972D0C2C239C9E006AE0F0 /* JTAppleCalendar in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D0B2C239C9E006AE0F0 /* JTAppleCalendar */; }; 4A972D0E2C239EBA006AE0F0 /* CocoaLumberjackSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D0D2C239EBA006AE0F0 /* CocoaLumberjackSwift */; }; 4A972D0F2C239EED006AE0F0 /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A972D102C239EED006AE0F0 /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A972D152C239F0D006AE0F0 /* CocoaLumberjackSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D142C239F0D006AE0F0 /* CocoaLumberjackSwift */; }; 4A972D162C239F23006AE0F0 /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A972D172C239F23006AE0F0 /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A972D1B2C239F3C006AE0F0 /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A972D1C2C239F3C006AE0F0 /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A972D212C239F54006AE0F0 /* CocoaLumberjackSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D202C239F54006AE0F0 /* CocoaLumberjackSwift */; }; 4A972D222C239F7C006AE0F0 /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A972D232C239F7C006AE0F0 /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A972D282C239FA7006AE0F0 /* ZIPFoundation in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D272C239FA7006AE0F0 /* ZIPFoundation */; }; 4A972D2A2C239FF0006AE0F0 /* Reachability in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D292C239FF0006AE0F0 /* Reachability */; }; 4A972D2C2C23A00B006AE0F0 /* Down in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D2B2C23A00B006AE0F0 /* Down */; }; @@ -1511,9 +1507,7 @@ 4A972D3C2C23A3D2006AE0F0 /* Reachability in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D3B2C23A3D2006AE0F0 /* Reachability */; }; 4A972D3E2C23A3ED006AE0F0 /* Starscream in Frameworks */ = {isa = PBXBuildFile; productRef = 4A972D3D2C23A3ED006AE0F0 /* Starscream */; }; 4A972D3F2C23A4C8006AE0F0 /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A972D402C23A4C8006AE0F0 /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A972D442C23B6D5006AE0F0 /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; - 4A972D452C23B6D5006AE0F0 /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A98A3072C22737000A2CE58 /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; 4A98A3082C22737000A2CE58 /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 4A98A44D2C22741500A2CE58 /* FilePart.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A98A3132C22741500A2CE58 /* FilePart.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -6849,6 +6843,13 @@ remoteGlobalIDString = 096A92F526E29FFF00448C68; remoteInfo = GenerateCredentials; }; + 0C0DF8832C2DDE7900011B7D /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4A98A2F32C22736F00A2CE58; + remoteInfo = WordPressKit; + }; 3F47AC4F2A72074300208F0D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; @@ -7059,94 +7060,6 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; - 4A65FC562C236746006ED20C /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A65FC532C236746006ED20C /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A65FC5B2C23677D006ED20C /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A65FC582C23677D006ED20C /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A972D132C239EED006AE0F0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A972D102C239EED006AE0F0 /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A972D1A2C239F23006AE0F0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A972D172C239F23006AE0F0 /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A972D1F2C239F3C006AE0F0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A972D1C2C239F3C006AE0F0 /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A972D262C239F7D006AE0F0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A972D232C239F7C006AE0F0 /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A972D432C23A4C8006AE0F0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A972D402C23A4C8006AE0F0 /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; - 4A972D482C23B6D5006AE0F0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 4A972D452C23B6D5006AE0F0 /* WordPressKit.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; 4AD953C92C21451800D0EEFA /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -7166,6 +7079,7 @@ dstSubfolderSpec = 10; files = ( 4AD9555B2C21716A00D0EEFA /* WordPressAuthenticator.framework in Embed Frameworks */, + 0C0DF8822C2DDE7900011B7D /* WordPressKit.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -12181,6 +12095,7 @@ FABB26352602FC2C00C8785C /* WordPressFlux in Frameworks */, 4A972D0C2C239C9E006AE0F0 /* JTAppleCalendar in Frameworks */, FABB26362602FC2C00C8785C /* CoreData.framework in Frameworks */, + 0C0DF8812C2DDE7900011B7D /* WordPressKit.framework in Frameworks */, FABB26372602FC2C00C8785C /* CFNetwork.framework in Frameworks */, 4A972D062C239C70006AE0F0 /* CocoaLumberjackSwift in Frameworks */, FABB26382602FC2C00C8785C /* MessageUI.framework in Frameworks */, @@ -22957,7 +22872,6 @@ 0107E0B328F97D5000DE87DB /* Sources */, 0107E0DD28F97D5000DE87DB /* Frameworks */, 0107E0E128F97D5000DE87DB /* Resources */, - 4A972D1A2C239F23006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23132,7 +23046,6 @@ 4AD953B02C21451700D0EEFA /* Sources */, 4AD953B12C21451700D0EEFA /* Frameworks */, 4AD953B22C21451700D0EEFA /* Resources */, - 4A972D482C23B6D5006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23200,7 +23113,6 @@ 7358E6B4210BD318002323EB /* Sources */, 7358E6B5210BD318002323EB /* Frameworks */, 7358E6B6210BD318002323EB /* Resources */, - 4A972D432C23A4C8006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23225,7 +23137,6 @@ 7457666F202B558C00F42E40 /* Frameworks */, 74576670202B558C00F42E40 /* Resources */, 9D186898B0632AA1273C9DE2 /* [CP] Copy Pods Resources */, - 4A65FC5B2C23677D006ED20C /* Embed Frameworks */, ); buildRules = ( ); @@ -23255,7 +23166,6 @@ 8096211428E540D700940A5D /* Frameworks */, 8096211628E540D700940A5D /* Resources */, 4C304224F0F810A17D96A402 /* [CP] Copy Pods Resources */, - 4A972D1F2C239F3C006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23285,7 +23195,6 @@ 8096217528E55C9400940A5D /* Frameworks */, 8096217728E55C9400940A5D /* Resources */, D880C306E1943EA76DA53078 /* [CP] Copy Pods Resources */, - 4A972D262C239F7D006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23313,7 +23222,6 @@ 80F6D02128EE866A00953C1A /* Sources */, 80F6D04A28EE866A00953C1A /* Frameworks */, 80F6D04C28EE866A00953C1A /* Resources */, - 4A972D132C239EED006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23356,7 +23264,6 @@ 932225A41C7CE50300443B02 /* Frameworks */, 932225A51C7CE50300443B02 /* Resources */, 83D79708413A3DA10638659F /* [CP] Copy Pods Resources */, - 4A65FC562C236746006ED20C /* Embed Frameworks */, ); buildRules = ( ); @@ -23454,6 +23361,7 @@ 8096219028E55F8600940A5D /* PBXTargetDependency */, 80F6D05F28EE88FC00953C1A /* PBXTargetDependency */, 4AD9555D2C21716A00D0EEFA /* PBXTargetDependency */, + 0C0DF8842C2DDE7900011B7D /* PBXTargetDependency */, ); name = Jetpack; packageProductDependencies = ( @@ -31223,6 +31131,11 @@ target = 096A92F526E29FFF00448C68 /* GenerateCredentials */; targetProxy = 096A92FC26E2A0AE00448C68 /* PBXContainerItemProxy */; }; + 0C0DF8842C2DDE7900011B7D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4A98A2F32C22736F00A2CE58 /* WordPressKit */; + targetProxy = 0C0DF8832C2DDE7900011B7D /* PBXContainerItemProxy */; + }; 3F47AC502A72074300208F0D /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 3F47AC482A7206BE00208F0D /* ConfigureSimulatorForUITesting */; @@ -33447,7 +33360,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 09F367D2BE684EDE2E4A40E3 /* Pods-WordPressDraftActionExtension.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "extension-icon"; CLANG_ANALYZER_NONNULL = YES_NONAGGRESSIVE; @@ -33503,7 +33415,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 8DE205D2AC15F16289E7D21A /* Pods-WordPressDraftActionExtension.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "extension-icon"; CLANG_ANALYZER_NONNULL = YES_NONAGGRESSIVE; @@ -33556,7 +33467,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = CDA9AED50FDA27959A5CD1B2 /* Pods-WordPressDraftActionExtension.release-internal.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "extension-icon"; CLANG_ANALYZER_NONNULL = YES_NONAGGRESSIVE; @@ -33610,7 +33520,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = F75F3A68DCE524B4BAFCE76E /* Pods-WordPressDraftActionExtension.release-alpha.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "extension-icon"; CLANG_ANALYZER_NONNULL = YES_NONAGGRESSIVE; @@ -33664,7 +33573,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = F85B762A18D018C22DF2A40D /* Pods-JetpackShareExtension.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; @@ -33736,7 +33644,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 7EC2116478565023EDB57703 /* Pods-JetpackShareExtension.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; @@ -33804,7 +33711,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 293E283D7339E7B6D13F6E09 /* Pods-JetpackShareExtension.release-internal.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; @@ -33874,7 +33780,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = C7AEA9D1F1AC3F501B6DE0C8 /* Pods-JetpackShareExtension.release-alpha.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; @@ -33944,7 +33849,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 9149D34BF5182F360C84EDB9 /* Pods-JetpackDraftActionExtension.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "jp-extension-icon"; BUILD_SCHEME = Jetpack; @@ -34001,7 +33905,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = CE5249687F020581B14F4172 /* Pods-JetpackDraftActionExtension.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "jp-extension-icon"; BUILD_SCHEME = Jetpack; @@ -34055,7 +33958,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 5E48AA7F709A5B0F2318A7E3 /* Pods-JetpackDraftActionExtension.release-internal.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "jp-extension-icon"; BUILD_SCHEME = Jetpack; @@ -34110,7 +34012,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = C5E82422F47D9BF7E682262B /* Pods-JetpackDraftActionExtension.release-alpha.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = "jp-extension-icon"; BUILD_SCHEME = Jetpack; @@ -34707,7 +34608,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = CB1DAFB7DE085F2FF0314622 /* Pods-WordPressShareExtension.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; @@ -34777,7 +34677,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 32387A1D541851E82ED957CE /* Pods-WordPressShareExtension.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; @@ -34843,7 +34742,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = C82B4C5ECF11C9FEE39CD9A0 /* Pods-WordPressShareExtension.release-internal.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; @@ -34911,7 +34809,6 @@ isa = XCBuildConfiguration; baseConfigurationReference = 1BC96E982E9B1A6DD86AF491 /* Pods-WordPressShareExtension.release-alpha.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = YES; ASSETCATALOG_COMPILER_APPICON_NAME = ""; From 8dc7674b565b046f717f393b634ade17cb15f0d0 Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 13:55:55 -0400 Subject: [PATCH 06/15] Disable some warnings in WordPressKit --- WordPress/WordPress.xcodeproj/project.pbxproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index bc0fd9efe267..ca286d5cd6f7 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -32295,6 +32295,7 @@ ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 WordPress. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -32350,6 +32351,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 WordPress. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -32403,6 +32405,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 WordPress. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -32456,6 +32459,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 WordPress. All rights reserved."; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; From 23a3fb993806eaaeb2726a87377c5e118565881a Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 13:57:07 -0400 Subject: [PATCH 07/15] Remove redundant manual linker flags --- config/WordPressAuthenticator.xcconfig | 4 ---- 1 file changed, 4 deletions(-) diff --git a/config/WordPressAuthenticator.xcconfig b/config/WordPressAuthenticator.xcconfig index d1f5c2ad652e..88d6151657a0 100644 --- a/config/WordPressAuthenticator.xcconfig +++ b/config/WordPressAuthenticator.xcconfig @@ -8,7 +8,3 @@ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = NO SWIFT_TREAT_WARNINGS_AS_ERRORS = NO CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_TREAT_WARNINGS_AS_ERRORS = NO - -WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressKit From 9fdd20ffb2e3241956d06b58a5ae53e12071054f Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 14:03:14 -0400 Subject: [PATCH 08/15] Fix WordPressKit tests --- .../EmbedFrameworks-input.xcfilelist | 1 - .../EmbedFrameworks-output.xcfilelist | 4 - .../WordPressKit/EmbedFrameworks.sh | 182 ------------------ WordPress/WordPress.xcodeproj/project.pbxproj | 29 +-- .../WordPressKit/Logging/WPKitLogging.h | 4 +- .../WordPressKit/Logging/WPKitLogging.swift | 3 + config/WordPressKitTests.xcconfig | 9 - 7 files changed, 13 insertions(+), 219 deletions(-) delete mode 100755 Scripts/BuildPhases/WordPressKit/EmbedFrameworks-input.xcfilelist delete mode 100755 Scripts/BuildPhases/WordPressKit/EmbedFrameworks-output.xcfilelist delete mode 100755 Scripts/BuildPhases/WordPressKit/EmbedFrameworks.sh diff --git a/Scripts/BuildPhases/WordPressKit/EmbedFrameworks-input.xcfilelist b/Scripts/BuildPhases/WordPressKit/EmbedFrameworks-input.xcfilelist deleted file mode 100755 index 51017cd7a154..000000000000 --- a/Scripts/BuildPhases/WordPressKit/EmbedFrameworks-input.xcfilelist +++ /dev/null @@ -1 +0,0 @@ -${SRCROOT}/../Scripts/BuildPhases/WordPressKit/EmbedFrameworks.sh diff --git a/Scripts/BuildPhases/WordPressKit/EmbedFrameworks-output.xcfilelist b/Scripts/BuildPhases/WordPressKit/EmbedFrameworks-output.xcfilelist deleted file mode 100755 index 11bd0a3d1a02..000000000000 --- a/Scripts/BuildPhases/WordPressKit/EmbedFrameworks-output.xcfilelist +++ /dev/null @@ -1,4 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/NSObject_SafeExpectations.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/UIDeviceIdentifier.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressShared.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/wpxmlrpc.framework diff --git a/Scripts/BuildPhases/WordPressKit/EmbedFrameworks.sh b/Scripts/BuildPhases/WordPressKit/EmbedFrameworks.sh deleted file mode 100755 index c0b734201c60..000000000000 --- a/Scripts/BuildPhases/WordPressKit/EmbedFrameworks.sh +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -BCSYMBOLMAP_DIR="BCSymbolMaps" - - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink -f "${source}")" - fi - - if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then - # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied - find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do - echo "Installing $f" - install_bcsymbolmap "$f" "$destination" - rm "$f" - done - rmdir "${source}/${BCSYMBOLMAP_DIR}" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures from the dSYM. - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - if [[ $STRIP_BINARY_RETVAL == 0 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - mkdir -p "${DWARF_DSYM_FOLDER_PATH}" - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=1 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=0 -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -install_framework "${BUILT_PRODUCTS_DIR}/WordPressShared/WordPressShared.framework" - -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index ca286d5cd6f7..e90b99bc6cc6 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -469,6 +469,7 @@ 0C0DF8802C2DDD5100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF87F2C2DDD5100011B7D /* WordPressShared */; }; 0C0DF8812C2DDE7900011B7D /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; 0C0DF8822C2DDE7900011B7D /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 0C0DF8862C2DE0C900011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8852C2DE0C900011B7D /* WordPressShared */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -11905,6 +11906,7 @@ 4A91C6CD2C22F45E00AD6324 /* Alamofire in Frameworks */, 4AEB35B32C22B91600D5AE8C /* WordPressKit.framework in Frameworks */, 4AEB35BA2C22D43200D5AE8C /* OHHTTPStubsSwift in Frameworks */, + 0C0DF8862C2DE0C900011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -23020,7 +23022,6 @@ 4A98A2F72C22736F00A2CE58 /* Sources */, 4A98A2F82C22736F00A2CE58 /* Frameworks */, 4A98A2F92C22736F00A2CE58 /* Resources */, - 4A41C6DC2C22B1C6007F353D /* [Custom] Embed Frameworks */, 4AEB35B52C22B91600D5AE8C /* Embed Frameworks */, ); buildRules = ( @@ -23033,6 +23034,7 @@ 4AEB35B92C22D43200D5AE8C /* OHHTTPStubsSwift */, 4AD028602C22EEAB004FBDD0 /* OCMock */, 4A91C6CC2C22F45E00AD6324 /* Alamofire */, + 0C0DF8852C2DE0C900011B7D /* WordPressShared */, ); productName = WordPressKitTests; productReference = 4A98A2FB2C22736F00A2CE58 /* WordPressKitTests.xctest */; @@ -25120,26 +25122,6 @@ shellPath = /bin/sh; shellScript = "\"$SRCROOT/../Scripts/BuildPhases/Authenticator/EmbedFrameworks.sh\"\n"; }; - 4A41C6DC2C22B1C6007F353D /* [Custom] Embed Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/WordPressKit/EmbedFrameworks-input.xcfilelist", - ); - inputPaths = ( - ); - name = "[Custom] Embed Frameworks"; - outputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/WordPressKit/EmbedFrameworks-output.xcfilelist", - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$SRCROOT/../Scripts/BuildPhases/WordPressKit/EmbedFrameworks.sh\"\n"; - }; 4C304224F0F810A17D96A402 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -36779,6 +36761,11 @@ package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; productName = WordPressShared; }; + 0C0DF8852C2DE0C900011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; 0C86B1A02C2DB2A7001AB70C /* WordPressUI */ = { isa = XCSwiftPackageProductDependency; package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; diff --git a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h index 16ebd99ad4ce..de532c2267ae 100644 --- a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h +++ b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h @@ -1,8 +1,8 @@ #import -NS_ASSUME_NONNULL_BEGIN +@import WordPressSharedObjC; -@protocol WordPressLoggingDelegate; +NS_ASSUME_NONNULL_BEGIN FOUNDATION_EXTERN id _Nullable WPKitGetLoggingDelegate(void); FOUNDATION_EXTERN void WPKitSetLoggingDelegate(id _Nullable logger); diff --git a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.swift b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.swift index f01875b94e7b..ace81fe6bd02 100644 --- a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.swift +++ b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.swift @@ -1,3 +1,6 @@ +import Foundation +import WordPressShared + func WPKitLogError(_ format: String, _ arguments: CVarArg...) { withVaList(arguments) { WPKitLogvError(format, $0) } } diff --git a/config/WordPressKitTests.xcconfig b/config/WordPressKitTests.xcconfig index e17c5eed564c..4518f7cd96e3 100644 --- a/config/WordPressKitTests.xcconfig +++ b/config/WordPressKitTests.xcconfig @@ -8,13 +8,4 @@ ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = NO SWIFT_TREAT_WARNINGS_AS_ERRORS = NO CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_TREAT_WARNINGS_AS_ERRORS = NO - ENABLE_USER_SCRIPT_SANDBOXING = NO - -WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressKit - -PODS_ROOT = ${SRCROOT}/../Pods -PODS_CONFIGURATION_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates From 69875e5887b6c1dc6a4138e677167a31055cc8b0 Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 14:11:31 -0400 Subject: [PATCH 09/15] Fix WordPressAuthentificator tests --- .../CopyResources-input.xcfilelist | 4 - .../CopyResources-output.xcfilelist | 3 - .../Authenticator/CopyResources.sh | 126 ------------ .../EmbedFrameworks-input.xcfilelist | 3 - .../EmbedFrameworks-output.xcfilelist | 11 -- .../Authenticator/EmbedFrameworks.sh | 183 ------------------ WordPress/WordPress.xcodeproj/project.pbxproj | 70 +++---- .../Analytics/AnalyticsTrackerTests.swift | 1 + .../Tests/Logging/LoggingTests.swift | 1 + .../Tests/Services/LoginFacadeTests.m | 8 - .../Tests/Utilities/LoggingTests.m | 13 ++ config/WordPressAuthenticatorTests.xcconfig | 8 - 12 files changed, 37 insertions(+), 394 deletions(-) delete mode 100644 Scripts/BuildPhases/Authenticator/CopyResources-input.xcfilelist delete mode 100644 Scripts/BuildPhases/Authenticator/CopyResources-output.xcfilelist delete mode 100755 Scripts/BuildPhases/Authenticator/CopyResources.sh delete mode 100755 Scripts/BuildPhases/Authenticator/EmbedFrameworks-input.xcfilelist delete mode 100755 Scripts/BuildPhases/Authenticator/EmbedFrameworks-output.xcfilelist delete mode 100755 Scripts/BuildPhases/Authenticator/EmbedFrameworks.sh diff --git a/Scripts/BuildPhases/Authenticator/CopyResources-input.xcfilelist b/Scripts/BuildPhases/Authenticator/CopyResources-input.xcfilelist deleted file mode 100644 index 0e44acd5259f..000000000000 --- a/Scripts/BuildPhases/Authenticator/CopyResources-input.xcfilelist +++ /dev/null @@ -1,4 +0,0 @@ -${SRCROOT}/../Scripts/BuildPhases/Authenticator/CopyResources.sh -${SRCROOT}/../WordPressAuthenticator/Sources/Resources/WordPressAuthenticatorResources.bundle -${PODS_CONFIGURATION_BUILD_DIR}/WordPressUI/WordPressUIResources.bundle -${PODS_CONFIGURATION_BUILD_DIR}/WordPressShared/WordPressShared.bundle diff --git a/Scripts/BuildPhases/Authenticator/CopyResources-output.xcfilelist b/Scripts/BuildPhases/Authenticator/CopyResources-output.xcfilelist deleted file mode 100644 index b2e3b51f44ce..000000000000 --- a/Scripts/BuildPhases/Authenticator/CopyResources-output.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressAuthenticatorResources.bundle -${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressUIResources.bundle -${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/WordPressShared.bundle diff --git a/Scripts/BuildPhases/Authenticator/CopyResources.sh b/Scripts/BuildPhases/Authenticator/CopyResources.sh deleted file mode 100755 index 61f2ee37f557..000000000000 --- a/Scripts/BuildPhases/Authenticator/CopyResources.sh +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then - # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy - # resources to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - -RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt -> "$RESOURCES_TO_COPY" - -XCASSET_FILES=() - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -case "${TARGETED_DEVICE_FAMILY:-}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - 3) - TARGET_DEVICE_ARGS="--target-device tv" - ;; - 4) - TARGET_DEVICE_ARGS="--target-device watch" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; -esac - -install_resource() -{ - if [[ "$1" = /* ]] ; then - RESOURCE_PATH="$1" - else - RESOURCE_PATH="${PODS_ROOT}/$1" - fi - if [[ ! -e "$RESOURCE_PATH" ]] ; then - cat << EOM -error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. -EOM - exit 1 - fi - case $RESOURCE_PATH in - *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true - ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} - ;; - *.framework) - echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - ;; - *.xcdatamodel) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" - ;; - *.xcdatamodeld) - echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true - xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" - ;; - *.xcmappingmodel) - echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true - xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" - ;; - *.xcassets) - ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" - XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") - ;; - *) - echo "$RESOURCE_PATH" || true - echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" - ;; - esac -} - -install_resource "${PODS_CONFIGURATION_BUILD_DIR}/WordPressUI/WordPressUIResources.bundle" -install_resource "${PODS_CONFIGURATION_BUILD_DIR}/WordPressShared/WordPressShared.bundle" - -mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then - mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -fi -rm -f "$RESOURCES_TO_COPY" - -if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] -then - # Find all other xcassets (this unfortunately includes those of path pods and other targets). - OTHER_XCASSETS=$(find -L "$PWD" -iname "*.xcassets" -type d) - while read line; do - if [[ $line != "${PODS_ROOT}*" ]]; then - XCASSET_FILES+=("$line") - fi - done <<<"$OTHER_XCASSETS" - - if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" - else - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" - fi -fi diff --git a/Scripts/BuildPhases/Authenticator/EmbedFrameworks-input.xcfilelist b/Scripts/BuildPhases/Authenticator/EmbedFrameworks-input.xcfilelist deleted file mode 100755 index d96658b90912..000000000000 --- a/Scripts/BuildPhases/Authenticator/EmbedFrameworks-input.xcfilelist +++ /dev/null @@ -1,3 +0,0 @@ -${SRCROOT}/../Scripts/BuildPhases/Authenticator/EmbedFrameworks.sh -${BUILT_PRODUCTS_DIR}/WordPressShared/WordPressShared.framework -${BUILT_PRODUCTS_DIR}/WordPressUI/WordPressUI.framework diff --git a/Scripts/BuildPhases/Authenticator/EmbedFrameworks-output.xcfilelist b/Scripts/BuildPhases/Authenticator/EmbedFrameworks-output.xcfilelist deleted file mode 100755 index b0cb379d2508..000000000000 --- a/Scripts/BuildPhases/Authenticator/EmbedFrameworks-output.xcfilelist +++ /dev/null @@ -1,11 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Gridicons.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/NSObject_SafeExpectations.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/NSURL_IDN.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Sentry.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SentryPrivate.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/UIDeviceIdentifier.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressKit.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressShared.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WordPressUI.framework -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/wpxmlrpc.framework diff --git a/Scripts/BuildPhases/Authenticator/EmbedFrameworks.sh b/Scripts/BuildPhases/Authenticator/EmbedFrameworks.sh deleted file mode 100755 index 1a5fbb96987c..000000000000 --- a/Scripts/BuildPhases/Authenticator/EmbedFrameworks.sh +++ /dev/null @@ -1,183 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -BCSYMBOLMAP_DIR="BCSymbolMaps" - - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink -f "${source}")" - fi - - if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then - # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied - find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do - echo "Installing $f" - install_bcsymbolmap "$f" "$destination" - rm "$f" - done - rmdir "${source}/${BCSYMBOLMAP_DIR}" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures from the dSYM. - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - if [[ $STRIP_BINARY_RETVAL == 0 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - mkdir -p "${DWARF_DSYM_FOLDER_PATH}" - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=1 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=0 -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -install_framework "${BUILT_PRODUCTS_DIR}/WordPressShared/WordPressShared.framework" -install_framework "${BUILT_PRODUCTS_DIR}/WordPressUI/WordPressUI.framework" - -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index e90b99bc6cc6..e24106aeec12 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -470,6 +470,7 @@ 0C0DF8812C2DDE7900011B7D /* WordPressKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; }; 0C0DF8822C2DDE7900011B7D /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 0C0DF8862C2DE0C900011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8852C2DE0C900011B7D /* WordPressShared */; }; + 0C0DF8882C2DE1D100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8872C2DE1D100011B7D /* WordPressShared */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -8216,6 +8217,7 @@ 46F584B72624E6380010A723 /* BlockEditorSettings+GutenbergEditorSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BlockEditorSettings+GutenbergEditorSettings.swift"; sourceTree = ""; }; 46F58500262605930010A723 /* BlockEditorSettingsServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockEditorSettingsServiceTests.swift; sourceTree = ""; }; 46F84612185A8B7E009D0DA5 /* PostContentProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PostContentProvider.h; sourceTree = ""; }; + 47DE5F30A976032231DC5F44 /* Pods-WordPressAuthenticatorTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAuthenticatorTests.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAuthenticatorTests/Pods-WordPressAuthenticatorTests.debug.xcconfig"; sourceTree = ""; }; 4A0274892C22594100290D8B /* WordPressShared.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressShared.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4A02748C2C22594B00290D8B /* WordPressKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 4A02748F2C22595600290D8B /* WordPressUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -10677,6 +10679,7 @@ CE46018A21139E8300F242B6 /* FooterTextContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FooterTextContent.swift; sourceTree = ""; }; CE5249687F020581B14F4172 /* Pods-JetpackDraftActionExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-JetpackDraftActionExtension.release.xcconfig"; path = "../Pods/Target Support Files/Pods-JetpackDraftActionExtension/Pods-JetpackDraftActionExtension.release.xcconfig"; sourceTree = ""; }; CE907AFD25F97D2A007E7654 /* WordPress 115.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 115.xcdatamodel"; sourceTree = ""; }; + CEA41CED95B3F6A0948F5E94 /* Pods-WordPressAuthenticatorTests.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAuthenticatorTests.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAuthenticatorTests/Pods-WordPressAuthenticatorTests.release-internal.xcconfig"; sourceTree = ""; }; CEBD3EA90FF1BA3B00C1396E /* Blog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Blog.h; sourceTree = ""; }; CEBD3EAA0FF1BA3B00C1396E /* Blog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Blog.m; sourceTree = ""; }; CECEEB542823164800A28ADE /* MediaCacheSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaCacheSettingsViewController.swift; sourceTree = ""; }; @@ -11011,6 +11014,7 @@ E240859B183D82AE002EB0EF /* WPAnimatedBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WPAnimatedBox.m; sourceTree = ""; }; E2AA87A318523E5300886693 /* UIView+Subviews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Subviews.h"; sourceTree = ""; }; E2AA87A418523E5300886693 /* UIView+Subviews.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Subviews.m"; sourceTree = ""; }; + E4C9B3C2D54ECA99AD4F2E77 /* Pods-WordPressAuthenticatorTests.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAuthenticatorTests.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAuthenticatorTests/Pods-WordPressAuthenticatorTests.release-alpha.xcconfig"; sourceTree = ""; }; E603C76F1BC94AED00AD49D7 /* WordPress-37-38.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; path = "WordPress-37-38.xcmappingmodel"; sourceTree = ""; }; E60BD230230A3DD400727E82 /* KeyringAccountHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyringAccountHelper.swift; sourceTree = ""; }; E61084B91B9B47BA008050C5 /* ReaderAbstractTopic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderAbstractTopic.swift; sourceTree = ""; }; @@ -11450,6 +11454,7 @@ F928EDA2226140620030D451 /* WPCrashLoggingProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WPCrashLoggingProvider.swift; sourceTree = ""; }; F93735F022D534FE00A3C312 /* LoggingURLRedactor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggingURLRedactor.swift; sourceTree = ""; }; F93735F722D53C3B00A3C312 /* LoggingURLRedactorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggingURLRedactorTests.swift; sourceTree = ""; }; + F93D7E21A749578459A1C572 /* Pods-WordPressAuthenticatorTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressAuthenticatorTests.release.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressAuthenticatorTests/Pods-WordPressAuthenticatorTests.release.xcconfig"; sourceTree = ""; }; F9463A7221C05EE90081F11E /* ScreenshotCredentials.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScreenshotCredentials.swift; sourceTree = ""; }; F97DA41F23D67B820050E791 /* MediaScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaScreen.swift; sourceTree = ""; }; F9941D1722A805F600788F33 /* UIImage+XCAssetTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+XCAssetTests.swift"; sourceTree = ""; }; @@ -11930,6 +11935,7 @@ files = ( 4AD028632C22EEBB004FBDD0 /* OCMock in Frameworks */, 4A0274862C224FB000290D8B /* WordPressAuthenticator.framework in Frameworks */, + 0C0DF8882C2DE1D100011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -13264,7 +13270,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { + 29B97314FDCFA39411CA2CEA = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -19455,6 +19461,10 @@ 5E48AA7F709A5B0F2318A7E3 /* Pods-JetpackDraftActionExtension.release-internal.xcconfig */, C5E82422F47D9BF7E682262B /* Pods-JetpackDraftActionExtension.release-alpha.xcconfig */, F75F3A68DCE524B4BAFCE76E /* Pods-WordPressDraftActionExtension.release-alpha.xcconfig */, + 47DE5F30A976032231DC5F44 /* Pods-WordPressAuthenticatorTests.debug.xcconfig */, + F93D7E21A749578459A1C572 /* Pods-WordPressAuthenticatorTests.release.xcconfig */, + CEA41CED95B3F6A0948F5E94 /* Pods-WordPressAuthenticatorTests.release-internal.xcconfig */, + E4C9B3C2D54ECA99AD4F2E77 /* Pods-WordPressAuthenticatorTests.release-alpha.xcconfig */, ); name = Pods; sourceTree = ""; @@ -23074,8 +23084,6 @@ 4AD953B72C21451700D0EEFA /* Sources */, 4AD953B82C21451700D0EEFA /* Frameworks */, 4AD953B92C21451700D0EEFA /* Resources */, - 4A0274852C22481A00290D8B /* Copy Resources */, - 4A0274A42C22674D00290D8B /* [Custom] Embed Frameworks */, 4A0274882C224FB000290D8B /* Embed Frameworks */, ); buildRules = ( @@ -23086,6 +23094,7 @@ name = WordPressAuthenticatorTests; packageProductDependencies = ( 4AD028622C22EEBB004FBDD0 /* OCMock */, + 0C0DF8872C2DE1D100011B7D /* WordPressShared */, ); productName = WordPressAuthenticatorTests; productReference = 4AD953BB2C21451700D0EEFA /* WordPressAuthenticatorTests.xctest */; @@ -23608,7 +23617,7 @@ bg, sk, ); - mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; + mainGroup = 29B97314FDCFA39411CA2CEA; packageReferences = ( 3FF1442E266F3C2400138163 /* XCRemoteSwiftPackageReference "ScreenObject" */, 3FC2C33B26C4CF0A00C6D98F /* XCRemoteSwiftPackageReference "XCUITestHelpers" */, @@ -25082,46 +25091,6 @@ shellScript = "$SRCROOT/../Scripts/BuildPhases/ConfigureSimulatorForUITesting.sh\n"; showEnvVarsInLog = 0; }; - 4A0274852C22481A00290D8B /* Copy Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/Authenticator/CopyResources-input.xcfilelist", - ); - inputPaths = ( - ); - name = "Copy Resources"; - outputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/Authenticator/CopyResources-output.xcfilelist", - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\"$SRCROOT/../Scripts/BuildPhases/Authenticator/CopyResources.sh\"\n"; - }; - 4A0274A42C22674D00290D8B /* [Custom] Embed Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/Authenticator/EmbedFrameworks-input.xcfilelist", - ); - inputPaths = ( - ); - name = "[Custom] Embed Frameworks"; - outputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/Authenticator/EmbedFrameworks-output.xcfilelist", - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$SRCROOT/../Scripts/BuildPhases/Authenticator/EmbedFrameworks.sh\"\n"; - }; 4C304224F0F810A17D96A402 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -25364,11 +25333,11 @@ files = ( ); inputPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", ); outputPaths = ( "", @@ -25525,13 +25494,13 @@ files = ( ); inputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", ); inputPaths = ( ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, + "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", ); outputPaths = ( ); @@ -36766,6 +36735,11 @@ package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; productName = WordPressShared; }; + 0C0DF8872C2DE1D100011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; 0C86B1A02C2DB2A7001AB70C /* WordPressUI */ = { isa = XCSwiftPackageProductDependency; package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; diff --git a/WordPressAuthenticator/Tests/Analytics/AnalyticsTrackerTests.swift b/WordPressAuthenticator/Tests/Analytics/AnalyticsTrackerTests.swift index cf1e19fe99ae..6dc5b8eee022 100644 --- a/WordPressAuthenticator/Tests/Analytics/AnalyticsTrackerTests.swift +++ b/WordPressAuthenticator/Tests/Analytics/AnalyticsTrackerTests.swift @@ -1,4 +1,5 @@ import XCTest +import WordPressShared @testable import WordPressAuthenticator class AnalyticsTrackerTests: XCTestCase { diff --git a/WordPressAuthenticator/Tests/Logging/LoggingTests.swift b/WordPressAuthenticator/Tests/Logging/LoggingTests.swift index 29fb1b3acb89..d95455f3718b 100644 --- a/WordPressAuthenticator/Tests/Logging/LoggingTests.swift +++ b/WordPressAuthenticator/Tests/Logging/LoggingTests.swift @@ -1,4 +1,5 @@ import XCTest +import WordPressShared @testable import WordPressAuthenticator diff --git a/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m b/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m index 005483c555fe..77835e1eb397 100644 --- a/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m +++ b/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m @@ -6,14 +6,6 @@ #import "WordPressXMLRPCAPIFacade.h" #import "WPAuthenticator-Swift.h" -#if __has_include("WordPressAuthenticatorTests-Swift.h") -#import "WordPressAuthenticatorTests-Swift.h" -#endif - -#if __has_include("WordPressAuthenticator_Unit_Tests-Swift.h") -#import "WordPressAuthenticator_Unit_Tests-Swift.h" -#endif - @import WordPressKit; diff --git a/WordPressKit/Tests/WordPressKitTests/Tests/Utilities/LoggingTests.m b/WordPressKit/Tests/WordPressKitTests/Tests/Utilities/LoggingTests.m index 60c4553b3220..1771e2193930 100644 --- a/WordPressKit/Tests/WordPressKitTests/Tests/Utilities/LoggingTests.m +++ b/WordPressKit/Tests/WordPressKitTests/Tests/Utilities/LoggingTests.m @@ -1,5 +1,6 @@ #import +@import WordPressShared; @import WordPressKit; @interface CaptureLogs : NSObject @@ -30,6 +31,18 @@ - (void)logError:(NSString *)str [self.errorLogs addObject:str]; } +- (void)logDebug:(nonnull NSString *)str { + +} + +- (void)logVerbose:(nonnull NSString *)str { + +} + +- (void)logWarning:(nonnull NSString *)str { + +} + @end @interface ObjCLoggingTest : XCTestCase diff --git a/config/WordPressAuthenticatorTests.xcconfig b/config/WordPressAuthenticatorTests.xcconfig index 52c38e968797..929ddeefc553 100644 --- a/config/WordPressAuthenticatorTests.xcconfig +++ b/config/WordPressAuthenticatorTests.xcconfig @@ -10,11 +10,3 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO GCC_TREAT_WARNINGS_AS_ERRORS = NO ENABLE_USER_SCRIPT_SANDBOXING = NO - -WP_EFFECTIVE_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -FRAMEWORK_SEARCH_PATHS = ${WP_EFFECTIVE_BUILD_DIR}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit ${WP_EFFECTIVE_BUILD_DIR}/Expecta ${WP_EFFECTIVE_BUILD_DIR}/Specta ${WP_EFFECTIVE_BUILD_DIR}/WordPressAuthenticator -OTHER_LDFLAGS = $(inherited) -ObjC -liconv -framework WordPressShared -framework WordPressKit -framework Expecta -framework Specta -framework WordPressAuthenticator - -PODS_ROOT = ${SRCROOT}/../Pods -PODS_CONFIGURATION_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates From 5052273c7330076451d4a1186fb2d8e0b1d3e90a Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 14:13:43 -0400 Subject: [PATCH 10/15] Remove Specta and Expecta from Podfile --- Podfile | 8 +------- Podfile.lock | 10 +--------- 2 files changed, 2 insertions(+), 16 deletions(-) diff --git a/Podfile b/Podfile index 01da067a64e8..7e40e32cb597 100644 --- a/Podfile +++ b/Podfile @@ -38,12 +38,6 @@ def gravatar pod 'GravatarUI', '2.0.0' end -def shared_test_pods - pod 'Expecta', '1.0.6' - pod 'Specta', '1.0.7' - gutenberg_pod -end - abstract_target 'Apps' do project 'WordPress/WordPress.xcodeproj' @@ -84,7 +78,7 @@ abstract_target 'Apps' do target 'WordPressTest' do inherit! :search_paths - shared_test_pods + gutenberg_pod end end diff --git a/Podfile.lock b/Podfile.lock index 934f511023b0..76eca9a927c8 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -10,7 +10,6 @@ PODS: - AppCenter/Distribute (5.0.4): - AppCenter/Core - CropViewController (2.5.3) - - Expecta (1.0.6) - FSInteractiveMap (0.1.0) - Gravatar (2.0.0) - GravatarUI (2.0.0): @@ -18,7 +17,6 @@ PODS: - Gutenberg (1.120.1) - MediaEditor (1.2.2): - CropViewController (~> 2.5.3) - - Specta (1.0.7) - SwiftLint (0.54.0) - WordPress-Aztec-iOS (1.19.11) - WordPress-Editor-iOS (1.19.11): @@ -28,13 +26,11 @@ DEPENDENCIES: - AppCenter (~> 5.0) - AppCenter/Distribute (~> 5.0) - CropViewController (= 2.5.3) - - Expecta (= 1.0.6) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gravatar (= 2.0.0) - GravatarUI (= 2.0.0) - Gutenberg (from `https://cdn.a8c-ci.services/gutenberg-mobile/Gutenberg-v1.120.1.podspec`) - MediaEditor (>= 1.2.2, ~> 1.2) - - Specta (= 1.0.7) - SwiftLint (= 0.54.0) - WordPress-Editor-iOS (~> 1.19.11) @@ -45,11 +41,9 @@ SPEC REPOS: trunk: - AppCenter - CropViewController - - Expecta - Gravatar - GravatarUI - MediaEditor - - Specta - SwiftLint EXTERNAL SOURCES: @@ -67,17 +61,15 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AppCenter: 85c92db0759d2792a65eb61d6842d2e86611a49a CropViewController: a5c143548a0fabcd6cc25f2d26e40460cfb8c78c - Expecta: 3b6bd90a64b9a1dcb0b70aa0e10a7f8f631667d5 FSInteractiveMap: a396f610f48b76cb540baa87139d056429abda86 Gravatar: 54fc63ea6298e9afca7329007815be25868f1dfe GravatarUI: bb5e03cda2da61e54aa1c20d4dde32b7153fa8b4 Gutenberg: 0699e7dd207afb591ccd5e81252a92e6e7781391 MediaEditor: d08314cfcbfac74361071a306b4bc3a39b3356ae - Specta: 3e1bd89c3517421982dc4d1c992503e48bd5fe66 SwiftLint: c1de071d9d08c8aba837545f6254315bc900e211 WordPress-Aztec-iOS: 3732c6d865a5c9f35788377bdeda8a80ea10d0a1 WordPress-Editor-iOS: 453345420ced3d3ef20f0051b3df46ff10281e0c -PODFILE CHECKSUM: f65c3de1d7b83328fa3e3aad7e154cafcb1887e0 +PODFILE CHECKSUM: 3f613d671323ac233553cfced32e6931b915bdc8 COCOAPODS: 1.15.2 From be8c8241b84e69b9cee2dcd86abec035861bfbdb Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 14:27:11 -0400 Subject: [PATCH 11/15] Fix WordPressAuthentificator tests by temporary disabling LoginFacadeTests --- WordPress/WordPress.xcodeproj/project.pbxproj | 34 +++-- .../Tests/Logging/LoggingTests.m | 1 + ...FacadeTests.m => LegacyLoginFacadeTests.m} | 122 +++++++++--------- 3 files changed, 86 insertions(+), 71 deletions(-) rename WordPressAuthenticator/Tests/Services/{LoginFacadeTests.m => LegacyLoginFacadeTests.m} (92%) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index e24106aeec12..5e7fbe920bd2 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -471,6 +471,8 @@ 0C0DF8822C2DDE7900011B7D /* WordPressKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 0C0DF8862C2DE0C900011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8852C2DE0C900011B7D /* WordPressShared */; }; 0C0DF8882C2DE1D100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8872C2DE1D100011B7D /* WordPressShared */; }; + 0C0DF88C2C2DE6FD00011B7D /* SVProgressHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF88B2C2DE6FD00011B7D /* SVProgressHUD */; }; + 0C0DF88E2C2DE71200011B7D /* Gridicons in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF88D2C2DE71200011B7D /* Gridicons */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -2486,7 +2488,6 @@ 4AD955C02C2171F000D0EEFA /* NavigationToEnterAccountTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD9558D2C2171F000D0EEFA /* NavigationToEnterAccountTests.swift */; }; 4AD955C12C2171F000D0EEFA /* NavigationToEnterSiteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD9558E2C2171F000D0EEFA /* NavigationToEnterSiteTests.swift */; }; 4AD955C22C2171F000D0EEFA /* NavigationToRootTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD9558F2C2171F000D0EEFA /* NavigationToRootTests.swift */; }; - 4AD955C32C2171F000D0EEFA /* LoginFacadeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AD955912C2171F000D0EEFA /* LoginFacadeTests.m */; }; 4AD955C42C2171F000D0EEFA /* AppleAuthenticatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD955932C2171F000D0EEFA /* AppleAuthenticatorTests.swift */; }; 4AD955C52C2171F000D0EEFA /* LoginViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD955942C2171F000D0EEFA /* LoginViewControllerTests.swift */; }; 4AD955C62C2171F000D0EEFA /* SiteAddressViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AD955952C2171F000D0EEFA /* SiteAddressViewModelTests.swift */; }; @@ -9240,7 +9241,7 @@ 4AD9558D2C2171F000D0EEFA /* NavigationToEnterAccountTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationToEnterAccountTests.swift; sourceTree = ""; }; 4AD9558E2C2171F000D0EEFA /* NavigationToEnterSiteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationToEnterSiteTests.swift; sourceTree = ""; }; 4AD9558F2C2171F000D0EEFA /* NavigationToRootTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationToRootTests.swift; sourceTree = ""; }; - 4AD955912C2171F000D0EEFA /* LoginFacadeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginFacadeTests.m; sourceTree = ""; }; + 4AD955912C2171F000D0EEFA /* LegacyLoginFacadeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LegacyLoginFacadeTests.m; sourceTree = ""; }; 4AD955932C2171F000D0EEFA /* AppleAuthenticatorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppleAuthenticatorTests.swift; sourceTree = ""; }; 4AD955942C2171F000D0EEFA /* LoginViewControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewControllerTests.swift; sourceTree = ""; }; 4AD955952C2171F000D0EEFA /* SiteAddressViewModelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteAddressViewModelTests.swift; sourceTree = ""; }; @@ -11933,6 +11934,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 0C0DF88E2C2DE71200011B7D /* Gridicons in Frameworks */, + 0C0DF88C2C2DE6FD00011B7D /* SVProgressHUD in Frameworks */, 4AD028632C22EEBB004FBDD0 /* OCMock in Frameworks */, 4A0274862C224FB000290D8B /* WordPressAuthenticator.framework in Frameworks */, 0C0DF8882C2DE1D100011B7D /* WordPressShared in Frameworks */, @@ -13270,7 +13273,7 @@ path = Classes; sourceTree = ""; }; - 29B97314FDCFA39411CA2CEA = { + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( 3F20FDF3276BF21000DA3CAD /* Packages */, @@ -16434,7 +16437,7 @@ 4AD955922C2171F000D0EEFA /* Services */ = { isa = PBXGroup; children = ( - 4AD955912C2171F000D0EEFA /* LoginFacadeTests.m */, + 4AD955912C2171F000D0EEFA /* LegacyLoginFacadeTests.m */, ); path = Services; sourceTree = ""; @@ -23095,6 +23098,8 @@ packageProductDependencies = ( 4AD028622C22EEBB004FBDD0 /* OCMock */, 0C0DF8872C2DE1D100011B7D /* WordPressShared */, + 0C0DF88B2C2DE6FD00011B7D /* SVProgressHUD */, + 0C0DF88D2C2DE71200011B7D /* Gridicons */, ); productName = WordPressAuthenticatorTests; productReference = 4AD953BB2C21451700D0EEFA /* WordPressAuthenticatorTests.xctest */; @@ -23617,7 +23622,7 @@ bg, sk, ); - mainGroup = 29B97314FDCFA39411CA2CEA; + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; packageReferences = ( 3FF1442E266F3C2400138163 /* XCRemoteSwiftPackageReference "ScreenObject" */, 3FC2C33B26C4CF0A00C6D98F /* XCRemoteSwiftPackageReference "XCUITestHelpers" */, @@ -25333,11 +25338,11 @@ files = ( ); inputPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, ); outputPaths = ( "", @@ -25494,13 +25499,13 @@ files = ( ); inputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.inputs.xcfilelist, ); inputPaths = ( ); name = "Copy Gutenberg JS"; outputFileListPaths = ( - "$SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist", + $SRCROOT/../Scripts/BuildPhases/CopyGutenbergJS.outputs.xcfilelist, ); outputPaths = ( ); @@ -28186,7 +28191,6 @@ 4AD955AA2C2171F000D0EEFA /* GoogleOAuthTokenGettingStub.swift in Sources */, 4AD955BE2C2171F000D0EEFA /* WordPressComSiteInfoTests.swift in Sources */, 4AD955A92C2171F000D0EEFA /* GoogleOAuthTokenGetterTests.swift in Sources */, - 4AD955C32C2171F000D0EEFA /* LoginFacadeTests.m in Sources */, 4AD955A62C2171F000D0EEFA /* Data+SHA256Tests.swift in Sources */, 4AD955BB2C2171F000D0EEFA /* WordpressAuthenticatorProvider.swift in Sources */, 4AD955C12C2171F000D0EEFA /* NavigationToEnterSiteTests.swift in Sources */, @@ -36740,6 +36744,16 @@ package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; productName = WordPressShared; }; + 0C0DF88B2C2DE6FD00011B7D /* SVProgressHUD */ = { + isa = XCSwiftPackageProductDependency; + package = 4A91C6CE2C22F64700AD6324 /* XCRemoteSwiftPackageReference "SVProgressHUD" */; + productName = SVProgressHUD; + }; + 0C0DF88D2C2DE71200011B7D /* Gridicons */ = { + isa = XCSwiftPackageProductDependency; + package = 4A2A358F2C2361AF00F47E9C /* XCRemoteSwiftPackageReference "Gridicons-iOS" */; + productName = Gridicons; + }; 0C86B1A02C2DB2A7001AB70C /* WordPressUI */ = { isa = XCSwiftPackageProductDependency; package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; diff --git a/WordPressAuthenticator/Tests/Logging/LoggingTests.m b/WordPressAuthenticator/Tests/Logging/LoggingTests.m index 1112269abec0..6318c6b45648 100644 --- a/WordPressAuthenticator/Tests/Logging/LoggingTests.m +++ b/WordPressAuthenticator/Tests/Logging/LoggingTests.m @@ -1,6 +1,7 @@ #import @import WordPressAuthenticator; +@import WordPressSharedObjC; @interface CaptureLogs : NSObject diff --git a/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m b/WordPressAuthenticator/Tests/Services/LegacyLoginFacadeTests.m similarity index 92% rename from WordPressAuthenticator/Tests/Services/LoginFacadeTests.m rename to WordPressAuthenticator/Tests/Services/LegacyLoginFacadeTests.m index 77835e1eb397..94f3705e1443 100644 --- a/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m +++ b/WordPressAuthenticator/Tests/Services/LegacyLoginFacadeTests.m @@ -44,57 +44,57 @@ }); describe(@"signInWithLoginFields", ^{ - + context(@"for a .com user", ^{ - + beforeEach(^{ loginFields.userIsDotCom = YES; }); - + it(@"should display a message about 'Connecting to WordPress.com'", ^{ [[mockLoginFacadeDelegate expect] displayLoginMessage:NSLocalizedString(@"Connecting to WordPress.com", nil)]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); - + it(@"should authenticate the user's credentials", ^{ [[mockOAuthFacade expect] authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]; [loginFacade signInWithLoginFields:loginFields]; - + [mockOAuthFacade verify]; }); - + it(@"should call LoginFacadeDelegate's finishedLoginWithUsername:authToken:shouldDisplayMultifactor: when authentication was successful", ^{ // Intercept success callback and execute it when appropriate NSString *authToken = @"auth-token"; [OCMStub([mockOAuthFacade authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { void (^ __unsafe_unretained successStub)(NSString *); [invocation getArgument:&successStub atIndex:5]; - + successStub(authToken); }]; [[mockLoginFacadeDelegate expect] finishedLoginWithAuthToken:authToken requiredMultifactorCode:loginFields.requiredMultifactor]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); - + it(@"should call LoginServceDelegate's needsMultifactorCode when authentication requires it", ^{ // Intercept success callback and execute it when appropriate [OCMStub([mockOAuthFacade authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { void (^ __unsafe_unretained needsMultifactorStub)(NSInteger, SocialLogin2FANonceInfo *); [invocation getArgument:&needsMultifactorStub atIndex:6]; - + needsMultifactorStub(0, nil); }]; [[mockLoginFacadeDelegate expect] needsMultifactorCode]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); @@ -123,145 +123,145 @@ [OCMStub([mockOAuthFacade authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { void (^ __unsafe_unretained failureStub)(NSError *); [invocation getArgument:&failureStub atIndex:7]; - + failureStub(error); }]; [[mockLoginFacadeDelegate expect] displayRemoteError:error]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); }); - + context(@"for a self hosted user", ^{ - + beforeEach(^{ loginFields.userIsDotCom = NO; }); - + it(@"should display a message about 'Authenticating'", ^{ [[mockLoginFacadeDelegate expect] displayLoginMessage:NSLocalizedString(@"Authenticating", nil)]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); - + context(@"the guessing of the xmlrpc url for the site", ^{ - + it(@"should occur", ^{ [[mockXMLRPCAPIFacade expect] guessXMLRPCURLForSite:loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockXMLRPCAPIFacade verify]; }); - + context(@"when successful", ^{ - + __block NSURL *xmlrpc; - + beforeEach(^{ xmlrpc = [NSURL URLWithString:@"http://www.selfhosted.com/xmlrpc.php"]; // Intercept success callback and execute it when appropriate [OCMStub([mockXMLRPCAPIFacade guessXMLRPCURLForSite:loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { void (^ __unsafe_unretained successStub)(NSURL *); [invocation getArgument:&successStub atIndex:3]; - + successStub(xmlrpc); }]; }); - + it(@"should result in attempting to retrieve the blog's options", ^{ [[mockXMLRPCAPIFacade expect] getBlogOptionsWithEndpoint:xmlrpc username:loginFields.username password:loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockXMLRPCAPIFacade verify]; }); - + context(@"successfully retrieving the blog's options", ^{ - + __block NSMutableDictionary *options; - + beforeEach(^{ options = [NSMutableDictionary dictionaryWithDictionary:@{@"software_version":@{@"value":@"4.2"}}]; - + // Intercept success callback and execute it when appropriate [OCMStub([mockXMLRPCAPIFacade getBlogOptionsWithEndpoint:xmlrpc username:loginFields.username password:loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { void (^ __unsafe_unretained successStub)(NSDictionary *); [invocation getArgument:&successStub atIndex:5]; - + successStub(options); }]; }); - + it(@"should indicate to the LoginFacadeDelegate it's finished logging in with those credentials", ^{ [[mockLoginFacadeDelegate expect] finishedLoginWithUsername:loginFields.username password:loginFields.password xmlrpc:[xmlrpc absoluteString] options:options]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); - + it(@"should attempt to authenticate for WordPress.com when it detects the site is a WordPress.com site", ^{ options[@"wordpress.com"] = @YES; [[mockOAuthFacade expect] authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockOAuthFacade verify]; }); }); - + context(@"failure of retrieving the blog's options", ^{ - + __block NSError *error; - + beforeEach(^{ error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; - + // Intercept failure callback and execute it when appropriate [OCMStub([mockXMLRPCAPIFacade getBlogOptionsWithEndpoint:xmlrpc username:loginFields.username password:loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { void (^ __unsafe_unretained failureStub)(NSError *); [invocation getArgument:&failureStub atIndex:6]; - + failureStub(error); }]; }); - + it(@"should display an error", ^{ [[mockLoginFacadeDelegate expect] displayRemoteError:error]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); }); }); - + context(@"when not successful", ^{ - + __block NSError *error; - + beforeEach(^{ error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; - + // Intercept failure callback and execute it when appropriate [OCMStub([mockXMLRPCAPIFacade guessXMLRPCURLForSite:loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { void (^ __unsafe_unretained failureStub)(NSError *); [invocation getArgument:&failureStub atIndex:4]; - + failureStub(error); }]; }); - + it(@"should display an error", ^{ [[mockLoginFacadeDelegate expect] displayRemoteError:error]; - + [loginFacade signInWithLoginFields:loginFields]; - + [mockLoginFacadeDelegate verify]; }); }); From 1c47a4938aa2f13cd8bf2dc5856f9b89275ed2fb Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 15:10:31 -0400 Subject: [PATCH 12/15] Update WordPressAuthenticator so that it could be compliled as an ObjC module again --- .../WordPressAuthenticator.swift | 1 - .../Sources/NUX/Button/NUXButton.swift | 1 - .../Sources/NUX/NUXNavigationController.swift | 3 +-- .../Sources/NUX/NUXTableViewController.swift | 2 ++ .../Sources/NUX/NUXViewController.swift | 1 + .../Signin/LoginNavigationController.swift | 23 ++++++++++++++++++- config/WordPressAuthenticator.xcconfig | 2 +- 7 files changed, 27 insertions(+), 6 deletions(-) diff --git a/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift b/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift index 74b3eb7b813b..30e7734fee4b 100644 --- a/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift +++ b/WordPressAuthenticator/Sources/Authenticator/WordPressAuthenticator.swift @@ -2,7 +2,6 @@ import AuthenticationServices import NSURL_IDN import UIKit import WordPressShared -import WordPressUI import WordPressKit // MARK: - WordPressAuthenticator: Public API to deal with WordPress.com and WordPress.org authentication. diff --git a/WordPressAuthenticator/Sources/NUX/Button/NUXButton.swift b/WordPressAuthenticator/Sources/NUX/Button/NUXButton.swift index 9257cae6db88..a5e4f85aa8df 100644 --- a/WordPressAuthenticator/Sources/NUX/Button/NUXButton.swift +++ b/WordPressAuthenticator/Sources/NUX/Button/NUXButton.swift @@ -1,6 +1,5 @@ import UIKit import WordPressShared -import WordPressUI import WordPressKit public struct NUXButtonStyle { diff --git a/WordPressAuthenticator/Sources/NUX/NUXNavigationController.swift b/WordPressAuthenticator/Sources/NUX/NUXNavigationController.swift index 3f3d7ac38fa8..21c28feba859 100644 --- a/WordPressAuthenticator/Sources/NUX/NUXNavigationController.swift +++ b/WordPressAuthenticator/Sources/NUX/NUXNavigationController.swift @@ -1,9 +1,8 @@ import UIKit -import WordPressUI /// Simple subclass of UINavigationController to facilitate a customized /// appearance as part of the sign in flow. /// -@objc open class NUXNavigationController: RotationAwareNavigationViewController { +public class NUXNavigationController: RotationAwareNavigationViewController { } diff --git a/WordPressAuthenticator/Sources/NUX/NUXTableViewController.swift b/WordPressAuthenticator/Sources/NUX/NUXTableViewController.swift index a1e15db5ae0f..34e448d1993b 100644 --- a/WordPressAuthenticator/Sources/NUX/NUXTableViewController.swift +++ b/WordPressAuthenticator/Sources/NUX/NUXTableViewController.swift @@ -1,3 +1,5 @@ +import UIKit + // MARK: - NUXTableViewController /// Base class to use for NUX view controllers that are also a table view controller /// Note: shares most of its code with NUXViewController. diff --git a/WordPressAuthenticator/Sources/NUX/NUXViewController.swift b/WordPressAuthenticator/Sources/NUX/NUXViewController.swift index 8c538be3d484..313a8a287a47 100644 --- a/WordPressAuthenticator/Sources/NUX/NUXViewController.swift +++ b/WordPressAuthenticator/Sources/NUX/NUXViewController.swift @@ -1,4 +1,5 @@ import WordPressUI +import UIKit // MARK: - NUXViewController /// Base class to use for NUX view controllers that aren't a table view diff --git a/WordPressAuthenticator/Sources/Signin/LoginNavigationController.swift b/WordPressAuthenticator/Sources/Signin/LoginNavigationController.swift index dcf7af36b842..87a7694b7644 100644 --- a/WordPressAuthenticator/Sources/Signin/LoginNavigationController.swift +++ b/WordPressAuthenticator/Sources/Signin/LoginNavigationController.swift @@ -1,6 +1,5 @@ import UIKit import WordPressShared -import WordPressUI public class LoginNavigationController: RotationAwareNavigationViewController { @@ -21,3 +20,25 @@ public class LoginNavigationController: RotationAwareNavigationViewController { } } + +// MARK: - RotationAwareNavigationViewController +// +public class RotationAwareNavigationViewController: UINavigationController { + + /// Should Autorotate: Respect the top child's orientation prefs. + /// + override open var shouldAutorotate: Bool { + return topViewController?.shouldAutorotate ?? super.shouldAutorotate + } + + /// Supported Orientations: Respect the top child's orientation prefs. + /// + override open var supportedInterfaceOrientations: UIInterfaceOrientationMask { + if let supportedOrientations = topViewController?.supportedInterfaceOrientations { + return supportedOrientations + } + + let isPad = UIDevice.current.userInterfaceIdiom == .pad + return isPad ? .all : .allButUpsideDown + } +} diff --git a/config/WordPressAuthenticator.xcconfig b/config/WordPressAuthenticator.xcconfig index 88d6151657a0..8914e2e41894 100644 --- a/config/WordPressAuthenticator.xcconfig +++ b/config/WordPressAuthenticator.xcconfig @@ -1,7 +1,7 @@ #include "Common.xcconfig" CLANG_ENABLE_MODULES = YES -SWIFT_INSTALL_OBJC_HEADER = NO +SWIFT_INSTALL_OBJC_HEADER = YES ENABLE_MODULE_VERIFIER = NO BUILD_LIBRARY_FOR_DISTRIBUTION = NO ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = NO From 93317f88a0df44116cf97202c3e358f02a84825e Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 15:32:51 -0400 Subject: [PATCH 13/15] Rewrite LoginFacadeTests --- WordPress/WordPress.xcodeproj/project.pbxproj | 6 +- .../Tests/Services/LegacyLoginFacadeTests.m | 273 ------------------ .../Tests/Services/LoginFacadeTests.m | 269 +++++++++++++++++ 3 files changed, 273 insertions(+), 275 deletions(-) delete mode 100644 WordPressAuthenticator/Tests/Services/LegacyLoginFacadeTests.m create mode 100644 WordPressAuthenticator/Tests/Services/LoginFacadeTests.m diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 5e7fbe920bd2..24a48dcb1dc7 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -473,6 +473,7 @@ 0C0DF8882C2DE1D100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8872C2DE1D100011B7D /* WordPressShared */; }; 0C0DF88C2C2DE6FD00011B7D /* SVProgressHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF88B2C2DE6FD00011B7D /* SVProgressHUD */; }; 0C0DF88E2C2DE71200011B7D /* Gridicons in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF88D2C2DE71200011B7D /* Gridicons */; }; + 0C0DF8942C2DF14600011B7D /* LoginFacadeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C0DF8932C2DF12A00011B7D /* LoginFacadeTests.m */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -7446,6 +7447,7 @@ 0C0AD1092B0CCFA400EC06E6 /* MediaPreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPreviewController.swift; sourceTree = ""; }; 0C0AE7582A8FAD6A007D9D6C /* MediaPickerMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPickerMenu.swift; sourceTree = ""; }; 0C0D3B0C2A4C79DE0050A00D /* BlazeCampaignsStream.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlazeCampaignsStream.swift; sourceTree = ""; }; + 0C0DF8932C2DF12A00011B7D /* LoginFacadeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LoginFacadeTests.m; sourceTree = ""; }; 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceToContentView.swift; sourceTree = ""; }; 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceToContentViewModel.swift; sourceTree = ""; }; 0C1531FD2AE17140003CDE13 /* PostSearchViewModel+Highlighter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PostSearchViewModel+Highlighter.swift"; sourceTree = ""; }; @@ -9241,7 +9243,6 @@ 4AD9558D2C2171F000D0EEFA /* NavigationToEnterAccountTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationToEnterAccountTests.swift; sourceTree = ""; }; 4AD9558E2C2171F000D0EEFA /* NavigationToEnterSiteTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationToEnterSiteTests.swift; sourceTree = ""; }; 4AD9558F2C2171F000D0EEFA /* NavigationToRootTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationToRootTests.swift; sourceTree = ""; }; - 4AD955912C2171F000D0EEFA /* LegacyLoginFacadeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LegacyLoginFacadeTests.m; sourceTree = ""; }; 4AD955932C2171F000D0EEFA /* AppleAuthenticatorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppleAuthenticatorTests.swift; sourceTree = ""; }; 4AD955942C2171F000D0EEFA /* LoginViewControllerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewControllerTests.swift; sourceTree = ""; }; 4AD955952C2171F000D0EEFA /* SiteAddressViewModelTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SiteAddressViewModelTests.swift; sourceTree = ""; }; @@ -16437,7 +16438,7 @@ 4AD955922C2171F000D0EEFA /* Services */ = { isa = PBXGroup; children = ( - 4AD955912C2171F000D0EEFA /* LegacyLoginFacadeTests.m */, + 0C0DF8932C2DF12A00011B7D /* LoginFacadeTests.m */, ); path = Services; sourceTree = ""; @@ -28189,6 +28190,7 @@ 4AD955A22C2171F000D0EEFA /* Character+URLSafeTests.swift in Sources */, 4AD9559B2C2171F000D0EEFA /* PasteboardTests.swift in Sources */, 4AD955AA2C2171F000D0EEFA /* GoogleOAuthTokenGettingStub.swift in Sources */, + 0C0DF8942C2DF14600011B7D /* LoginFacadeTests.m in Sources */, 4AD955BE2C2171F000D0EEFA /* WordPressComSiteInfoTests.swift in Sources */, 4AD955A92C2171F000D0EEFA /* GoogleOAuthTokenGetterTests.swift in Sources */, 4AD955A62C2171F000D0EEFA /* Data+SHA256Tests.swift in Sources */, diff --git a/WordPressAuthenticator/Tests/Services/LegacyLoginFacadeTests.m b/WordPressAuthenticator/Tests/Services/LegacyLoginFacadeTests.m deleted file mode 100644 index 94f3705e1443..000000000000 --- a/WordPressAuthenticator/Tests/Services/LegacyLoginFacadeTests.m +++ /dev/null @@ -1,273 +0,0 @@ -#import -#define EXP_SHORTHAND -#import -#import -#import "LoginFacade.h" -#import "WordPressXMLRPCAPIFacade.h" -#import "WPAuthenticator-Swift.h" - -@import WordPressKit; - - -SpecBegin(LoginFacade) - -__block LoginFacade *loginFacade; -__block id mockOAuthFacade; -__block id mockXMLRPCAPIFacade; -__block id mockLoginFacade; -__block id mockLoginFacadeDelegate; -__block LoginFields *loginFields; - -beforeAll(^{ - [WordpressAuthenticatorProvider initializeWordPressAuthenticator]; -}); - -beforeEach(^{ - mockOAuthFacade = [OCMockObject niceMockForProtocol:@protocol(WordPressComOAuthClientFacadeProtocol)]; - mockXMLRPCAPIFacade = [OCMockObject niceMockForProtocol:@protocol(WordPressXMLRPCAPIFacade)]; - mockLoginFacadeDelegate = [OCMockObject niceMockForProtocol:@protocol(LoginFacadeDelegate)]; - - loginFacade = [LoginFacade new]; - loginFacade.wordpressComOAuthClientFacade = mockOAuthFacade; - loginFacade.wordpressXMLRPCAPIFacade = mockXMLRPCAPIFacade; - loginFacade.delegate = mockLoginFacadeDelegate; - - mockLoginFacade = OCMPartialMock(loginFacade); - OCMStub([[mockLoginFacade ignoringNonObjectArgs] track:0]); - OCMStub([[mockLoginFacade ignoringNonObjectArgs] track:0 error:[OCMArg any]]); - - loginFields = [LoginFields new]; - loginFields.username = @"username"; - loginFields.password = @"password"; - loginFields.siteAddress = @"www.mysite.com"; - loginFields.multifactorCode = @"123456"; -}); - -describe(@"signInWithLoginFields", ^{ - - context(@"for a .com user", ^{ - - beforeEach(^{ - loginFields.userIsDotCom = YES; - }); - - it(@"should display a message about 'Connecting to WordPress.com'", ^{ - [[mockLoginFacadeDelegate expect] displayLoginMessage:NSLocalizedString(@"Connecting to WordPress.com", nil)]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - - it(@"should authenticate the user's credentials", ^{ - [[mockOAuthFacade expect] authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockOAuthFacade verify]; - }); - - it(@"should call LoginFacadeDelegate's finishedLoginWithUsername:authToken:shouldDisplayMultifactor: when authentication was successful", ^{ - // Intercept success callback and execute it when appropriate - NSString *authToken = @"auth-token"; - [OCMStub([mockOAuthFacade authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained successStub)(NSString *); - [invocation getArgument:&successStub atIndex:5]; - - successStub(authToken); - }]; - [[mockLoginFacadeDelegate expect] finishedLoginWithAuthToken:authToken requiredMultifactorCode:loginFields.requiredMultifactor]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - - it(@"should call LoginServceDelegate's needsMultifactorCode when authentication requires it", ^{ - // Intercept success callback and execute it when appropriate - [OCMStub([mockOAuthFacade authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained needsMultifactorStub)(NSInteger, SocialLogin2FANonceInfo *); - [invocation getArgument:&needsMultifactorStub atIndex:6]; - - needsMultifactorStub(0, nil); - }]; - [[mockLoginFacadeDelegate expect] needsMultifactorCode]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - - it(@"should call LoginServceDelegate's needsMultifactorCode:userID:nonceInfo when authentication requires it", ^{ - // Expected parameters - NSInteger userID = 1234; - SocialLogin2FANonceInfo * info = [SocialLogin2FANonceInfo new]; - - // Intercept success callback and execute it when appropriate - [OCMStub([mockOAuthFacade authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained needsMultifactorStub)(NSInteger, SocialLogin2FANonceInfo *); - [invocation getArgument:&needsMultifactorStub atIndex:6]; - - needsMultifactorStub(userID, info); - }]; - [[mockLoginFacadeDelegate expect] needsMultifactorCodeForUserID:userID andNonceInfo:info]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - - it(@"should call LoginFacadeDelegate's displayRemoteError when there has been an error", ^{ - NSError *error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; - // Intercept success callback and execute it when appropriate - [OCMStub([mockOAuthFacade authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained failureStub)(NSError *); - [invocation getArgument:&failureStub atIndex:7]; - - failureStub(error); - }]; - [[mockLoginFacadeDelegate expect] displayRemoteError:error]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - }); - - context(@"for a self hosted user", ^{ - - beforeEach(^{ - loginFields.userIsDotCom = NO; - }); - - it(@"should display a message about 'Authenticating'", ^{ - [[mockLoginFacadeDelegate expect] displayLoginMessage:NSLocalizedString(@"Authenticating", nil)]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - - context(@"the guessing of the xmlrpc url for the site", ^{ - - it(@"should occur", ^{ - [[mockXMLRPCAPIFacade expect] guessXMLRPCURLForSite:loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockXMLRPCAPIFacade verify]; - }); - - context(@"when successful", ^{ - - __block NSURL *xmlrpc; - - beforeEach(^{ - xmlrpc = [NSURL URLWithString:@"http://www.selfhosted.com/xmlrpc.php"]; - // Intercept success callback and execute it when appropriate - [OCMStub([mockXMLRPCAPIFacade guessXMLRPCURLForSite:loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained successStub)(NSURL *); - [invocation getArgument:&successStub atIndex:3]; - - successStub(xmlrpc); - }]; - }); - - it(@"should result in attempting to retrieve the blog's options", ^{ - [[mockXMLRPCAPIFacade expect] getBlogOptionsWithEndpoint:xmlrpc username:loginFields.username password:loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockXMLRPCAPIFacade verify]; - }); - - context(@"successfully retrieving the blog's options", ^{ - - __block NSMutableDictionary *options; - - beforeEach(^{ - options = [NSMutableDictionary dictionaryWithDictionary:@{@"software_version":@{@"value":@"4.2"}}]; - - // Intercept success callback and execute it when appropriate - [OCMStub([mockXMLRPCAPIFacade getBlogOptionsWithEndpoint:xmlrpc username:loginFields.username password:loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained successStub)(NSDictionary *); - [invocation getArgument:&successStub atIndex:5]; - - successStub(options); - }]; - }); - - it(@"should indicate to the LoginFacadeDelegate it's finished logging in with those credentials", ^{ - [[mockLoginFacadeDelegate expect] finishedLoginWithUsername:loginFields.username password:loginFields.password xmlrpc:[xmlrpc absoluteString] options:options]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - - it(@"should attempt to authenticate for WordPress.com when it detects the site is a WordPress.com site", ^{ - options[@"wordpress.com"] = @YES; - [[mockOAuthFacade expect] authenticateWithUsername:loginFields.username password:loginFields.password multifactorCode:loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockOAuthFacade verify]; - }); - }); - - context(@"failure of retrieving the blog's options", ^{ - - __block NSError *error; - - beforeEach(^{ - error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; - - // Intercept failure callback and execute it when appropriate - [OCMStub([mockXMLRPCAPIFacade getBlogOptionsWithEndpoint:xmlrpc username:loginFields.username password:loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained failureStub)(NSError *); - [invocation getArgument:&failureStub atIndex:6]; - - failureStub(error); - }]; - }); - - it(@"should display an error", ^{ - [[mockLoginFacadeDelegate expect] displayRemoteError:error]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - }); - }); - - context(@"when not successful", ^{ - - __block NSError *error; - - beforeEach(^{ - error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; - - // Intercept failure callback and execute it when appropriate - [OCMStub([mockXMLRPCAPIFacade guessXMLRPCURLForSite:loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { - void (^ __unsafe_unretained failureStub)(NSError *); - [invocation getArgument:&failureStub atIndex:4]; - - failureStub(error); - }]; - }); - - it(@"should display an error", ^{ - [[mockLoginFacadeDelegate expect] displayRemoteError:error]; - - [loginFacade signInWithLoginFields:loginFields]; - - [mockLoginFacadeDelegate verify]; - }); - }); - }); - }); -}); - -SpecEnd - diff --git a/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m b/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m new file mode 100644 index 000000000000..2cd3ff932a83 --- /dev/null +++ b/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m @@ -0,0 +1,269 @@ +#import "WordPressAuthenticatorTests-Swift.h" +#import "LoginFacade.h" +#import "WordPressXMLRPCAPIFacade.h" + +@import OCMock; +@import XCTest; +@import WordPressShared; +@import WordPressAuthenticator; +@import WordPressKit; + +@interface LoginFacadeTests: XCTestCase + +@property (nonatomic) LoginFacade *loginFacade; +@property (nonatomic) id mockOAuthFacade; +@property (nonatomic) id mockXMLRPCAPIFacade; +@property (nonatomic) id mockLoginFacade; +@property (nonatomic) id mockLoginFacadeDelegate; +@property (nonatomic) LoginFields *loginFields; +@property (nonatomic) NSURL *xmlrpc; +@property (nonatomic) NSMutableDictionary *xmlrpcOptions; + +@end + +@implementation LoginFacadeTests + +- (void)setUp { + [super setUp]; + + [WordpressAuthenticatorProvider initializeWordPressAuthenticator]; + + self.mockOAuthFacade = [OCMockObject niceMockForProtocol:@protocol(WordPressComOAuthClientFacadeProtocol)]; + self.mockXMLRPCAPIFacade = [OCMockObject niceMockForProtocol:@protocol(WordPressXMLRPCAPIFacade)]; + self.mockLoginFacadeDelegate = [OCMockObject niceMockForProtocol:@protocol(LoginFacadeDelegate)]; + + self.loginFacade = [LoginFacade new]; + self.loginFacade.wordpressComOAuthClientFacade = self.mockOAuthFacade; + self.loginFacade.wordpressXMLRPCAPIFacade = self.mockXMLRPCAPIFacade; + self.loginFacade.delegate = self.mockLoginFacadeDelegate; + + self.mockLoginFacade = OCMPartialMock(self.loginFacade); + OCMStub([[self.mockLoginFacade ignoringNonObjectArgs] track:0]); + OCMStub([[self.mockLoginFacade ignoringNonObjectArgs] track:0 error:[OCMArg any]]); + + self.loginFields = [LoginFields new]; + self.loginFields.username = @"username"; + self.loginFields.password = @"password"; + self.loginFields.siteAddress = @"www.mysite.com"; + self.loginFields.multifactorCode = @"123456"; +} + +- (void)tearDown { + // Put teardown code here. This method is called after the invocation of each test method in the class. +} + +// MARK: - WordPress.com + +- (void)testDotComExampleShouldDisplayMessageAboutConnectinToWordPressCom { + self.loginFields.userIsDotCom = YES; + + [[self.mockLoginFacadeDelegate expect] displayLoginMessage:NSLocalizedString(@"Connecting to WordPress.com", nil)]; + [self.loginFacade signInWithLoginFields:self.loginFields]; + [self.mockLoginFacadeDelegate verify]; +} + +- (void)testDotComShouldAuthenticateUserCredentials { + self.loginFields.userIsDotCom = YES; + + [[self.mockOAuthFacade expect] authenticateWithUsername:self.loginFields.username password:self.loginFields.password multifactorCode:self.loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockOAuthFacade verify]; +} + +- (void)testDotComShouldCallLoginFacadeDelegateFinishedLoginWithUsername { + self.loginFields.userIsDotCom = YES; + + NSString *authToken = @"auth-token"; + [OCMStub([self.mockOAuthFacade authenticateWithUsername:self.loginFields.username password:self.loginFields.password multifactorCode:self.loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained successStub)(NSString *); + [invocation getArgument:&successStub atIndex:5]; + + successStub(authToken); + }]; + [[self.mockLoginFacadeDelegate expect] finishedLoginWithAuthToken:authToken requiredMultifactorCode:self.loginFields.requiredMultifactor]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +- (void)testDotComShouldCallLoginFacadeNeedsMultifactorCodeWhenAuthentificationRequired { + self.loginFields.userIsDotCom = YES; + + [OCMStub([self.mockOAuthFacade authenticateWithUsername:self.loginFields.username password:self.loginFields.password multifactorCode:self.loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained needsMultifactorStub)(NSInteger, SocialLogin2FANonceInfo *); + [invocation getArgument:&needsMultifactorStub atIndex:6]; + + needsMultifactorStub(0, nil); + }]; + [[self.mockLoginFacadeDelegate expect] needsMultifactorCode]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +- (void)testDotComShouldCallLoginFacadeNeedsMultifactorCode { + self.loginFields.userIsDotCom = YES; + + // Expected parameters + NSInteger userID = 1234; + SocialLogin2FANonceInfo * info = [SocialLogin2FANonceInfo new]; + + // Intercept success callback and execute it when appropriate + [OCMStub([self.mockOAuthFacade authenticateWithUsername:self.loginFields.username password:self.loginFields.password multifactorCode:self.loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained needsMultifactorStub)(NSInteger, SocialLogin2FANonceInfo *); + [invocation getArgument:&needsMultifactorStub atIndex:6]; + + needsMultifactorStub(userID, info); + }]; + [[self.mockLoginFacadeDelegate expect] needsMultifactorCodeForUserID:userID andNonceInfo:info]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +- (void)testDotComShouldCallLoginFacadeDisplayRemoteError { + self.loginFields.userIsDotCom = YES; + + NSError *error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; + // Intercept success callback and execute it when appropriate + [OCMStub([self.mockOAuthFacade authenticateWithUsername:self.loginFields.username password:self.loginFields.password multifactorCode:self.loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained failureStub)(NSError *); + [invocation getArgument:&failureStub atIndex:7]; + + failureStub(error); + }]; + [[self.mockLoginFacadeDelegate expect] displayRemoteError:error]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +// MARK: - Self-Hosted + +- (void)testSelfHostedShoulDisplayAuthentificatingMessage { + self.loginFields.userIsDotCom = NO; + + [[self.mockLoginFacadeDelegate expect] displayLoginMessage:NSLocalizedString(@"Authenticating", nil)]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +- (void)testSelfHostedShouldGuessingXMLRPCForSite { + self.loginFields.userIsDotCom = NO; + + [[self.mockXMLRPCAPIFacade expect] guessXMLRPCURLForSite:self.loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockXMLRPCAPIFacade verify]; +} + +- (void)testSelfHostedShouldRetrieveBlogOptions { + [self mockXMLRPCFacade]; + + [[self.mockXMLRPCAPIFacade expect] getBlogOptionsWithEndpoint:self.xmlrpc username:self.loginFields.username password:self.loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockXMLRPCAPIFacade verify]; +} + +- (void)testSelfHostedShouldIndicateLoginFacadeDelegateAfterRetrievingBlogOptions { + [self mockXMLRPCSuccessfulBlogOptions]; + + [[self.mockLoginFacadeDelegate expect] finishedLoginWithUsername:self.loginFields.username password:self.loginFields.password xmlrpc:[self.xmlrpc absoluteString] options:self.xmlrpcOptions]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +- (void)testSelfHostedShouldAttemptAuthentificateDotComAfterRetrievingBlogOptions { + [self mockXMLRPCSuccessfulBlogOptions]; + + self.xmlrpcOptions[@"wordpress.com"] = @YES; + [[self.mockOAuthFacade expect] authenticateWithUsername:self.loginFields.username password:self.loginFields.password multifactorCode:self.loginFields.multifactorCode success:OCMOCK_ANY needsMultifactor:OCMOCK_ANY failure:OCMOCK_ANY]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockOAuthFacade verify]; +} + +- (void)testSelfHostedShouldDisplayErrorOnFailureRetrievingBlogOptions { + [self mockXMLRPCFacade]; + + NSError *error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; + + // Intercept failure callback and execute it when appropriate + [OCMStub([self.mockXMLRPCAPIFacade getBlogOptionsWithEndpoint:self.xmlrpc username:self.loginFields.username password:self.loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained failureStub)(NSError *); + [invocation getArgument:&failureStub atIndex:6]; + + failureStub(error); + }]; + + [[self.mockLoginFacadeDelegate expect] displayRemoteError:error]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +- (void)testSelfHostedShouldDisplayErrorOnGuessXMLRPC { + self.loginFields.userIsDotCom = NO; + + NSError *error = [NSError errorWithDomain:@"org.wordpress" code:-1 userInfo:@{ NSLocalizedDescriptionKey : @"Error" }]; + + // Intercept failure callback and execute it when appropriate + [OCMStub([self.mockXMLRPCAPIFacade guessXMLRPCURLForSite:self.loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained failureStub)(NSError *); + [invocation getArgument:&failureStub atIndex:4]; + + failureStub(error); + }]; + + [[self.mockLoginFacadeDelegate expect] displayRemoteError:error]; + + [self.loginFacade signInWithLoginFields:self.loginFields]; + + [self.mockLoginFacadeDelegate verify]; +} + +// MARK: - Mocks + +- (void)mockXMLRPCFacade { + self.loginFields.userIsDotCom = NO; + + self.xmlrpc = [NSURL URLWithString:@"http://www.selfhosted.com/xmlrpc.php"]; + // Intercept success callback and execute it when appropriate + [OCMStub([self.mockXMLRPCAPIFacade guessXMLRPCURLForSite:self.loginFields.siteAddress success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained successStub)(NSURL *); + [invocation getArgument:&successStub atIndex:3]; + + successStub(self.xmlrpc); + }]; +} + +- (void)mockXMLRPCSuccessfulBlogOptions { + [self mockXMLRPCFacade]; + + self.xmlrpcOptions = [NSMutableDictionary dictionaryWithDictionary:@{@"software_version":@{@"value":@"4.2"}}]; + + // Intercept success callback and execute it when appropriate + [OCMStub([self.mockXMLRPCAPIFacade getBlogOptionsWithEndpoint:self.xmlrpc username:self.loginFields.username password:self.loginFields.password success:OCMOCK_ANY failure:OCMOCK_ANY]) andDo:^(NSInvocation *invocation) { + void (^ __unsafe_unretained successStub)(NSDictionary *); + [invocation getArgument:&successStub atIndex:5]; + + successStub(self.xmlrpcOptions); + }]; +} + +@end From a7188e036469c2dc241e3c24cf04167508a40e47 Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 17:26:38 -0400 Subject: [PATCH 14/15] Fix WordPressTests --- WordPress/WordPress.xcodeproj/project.pbxproj | 20 +++++++++++++++++++ .../AnalyticsEventTrackingSpy.swift | 1 + 2 files changed, 21 insertions(+) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 24a48dcb1dc7..114c35c16ce9 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -474,6 +474,8 @@ 0C0DF88C2C2DE6FD00011B7D /* SVProgressHUD in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF88B2C2DE6FD00011B7D /* SVProgressHUD */; }; 0C0DF88E2C2DE71200011B7D /* Gridicons in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF88D2C2DE71200011B7D /* Gridicons */; }; 0C0DF8942C2DF14600011B7D /* LoginFacadeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C0DF8932C2DF12A00011B7D /* LoginFacadeTests.m */; }; + 0C0DF8962C2E10B100011B7D /* WordPressShared in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8952C2E10B100011B7D /* WordPressShared */; }; + 0C0DF8982C2E10E600011B7D /* WordPressUI in Frameworks */ = {isa = PBXBuildFile; productRef = 0C0DF8972C2E10E600011B7D /* WordPressUI */; }; 0C13ACC72BF406CB00FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; 0C13ACC92BF406E700FF7405 /* VoiceToContentViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC82BF406E700FF7405 /* VoiceToContentViewModel.swift */; }; 0C13ACCA2BF4084400FF7405 /* VoiceToContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C13ACC62BF406CB00FF7405 /* VoiceToContentView.swift */; }; @@ -12049,6 +12051,8 @@ buildActionMask = 2147483647; files = ( 4AEB35BD2C22E59C00D5AE8C /* OCMock in Frameworks */, + 0C0DF8962C2E10B100011B7D /* WordPressShared in Frameworks */, + 0C0DF8982C2E10E600011B7D /* WordPressUI in Frameworks */, 3FFB3F242AFC730C00A742B0 /* JetpackStatsWidgetsCore in Frameworks */, 3F338B71289BD3040014ADC5 /* Nimble in Frameworks */, 3F3B23C22858A1B300CACE60 /* BuildkiteTestCollector in Frameworks */, @@ -23323,6 +23327,8 @@ 3FFB3F232AFC730C00A742B0 /* JetpackStatsWidgetsCore */, 4AEB35B72C22D25B00D5AE8C /* OHHTTPStubsSwift */, 4AEB35BC2C22E59C00D5AE8C /* OCMock */, + 0C0DF8952C2E10B100011B7D /* WordPressShared */, + 0C0DF8972C2E10E600011B7D /* WordPressUI */, ); productName = WordPressTest; productReference = E16AB92A14D978240047A2E5 /* WordPressTest.xctest */; @@ -32467,6 +32473,7 @@ ); GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; @@ -32503,6 +32510,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; @@ -32537,6 +32545,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; @@ -32571,6 +32580,7 @@ GCC_C_LANGUAGE_STANDARD = gnu17; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_PARAMETER = NO; GENERATE_INFOPLIST_FILE = YES; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MARKETING_VERSION = 1.0; @@ -36756,6 +36766,16 @@ package = 4A2A358F2C2361AF00F47E9C /* XCRemoteSwiftPackageReference "Gridicons-iOS" */; productName = Gridicons; }; + 0C0DF8952C2E10B100011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF8972C2E10E600011B7D /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; 0C86B1A02C2DB2A7001AB70C /* WordPressUI */ = { isa = XCSwiftPackageProductDependency; package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; diff --git a/WordPress/WordPressTest/AnalyticsEventTrackingSpy.swift b/WordPress/WordPressTest/AnalyticsEventTrackingSpy.swift index e8af4f8c175b..f047a6a8f672 100644 --- a/WordPress/WordPressTest/AnalyticsEventTrackingSpy.swift +++ b/WordPress/WordPressTest/AnalyticsEventTrackingSpy.swift @@ -1,3 +1,4 @@ +import WordPressShared @testable import WordPress class AnalyticsEventTrackingSpy: AnalyticsEventTracking { From 68cf81ba0ee751b3f00ef3e4ebc55fe10e4892f8 Mon Sep 17 00:00:00 2001 From: kean Date: Thu, 27 Jun 2024 19:42:05 -0400 Subject: [PATCH 15/15] Add missing executable_path/../../Frameworks in the share extensions --- WordPress/WordPress.xcodeproj/project.pbxproj | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 114c35c16ce9..bb2c3a368820 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -33595,8 +33595,9 @@ ); INFOPLIST_FILE = JetpackShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = YES; OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D DEBUG"; @@ -33664,8 +33665,9 @@ ); INFOPLIST_FILE = JetpackShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = com.automattic.jetpack.JetpackShare; @@ -33732,8 +33734,9 @@ ); INFOPLIST_FILE = "JetpackShareExtension/Info-Internal.plist"; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D INTERNAL_BUILD"; @@ -33801,8 +33804,9 @@ ); INFOPLIST_FILE = "JetpackShareExtension/Info-Alpha.plist"; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D ALPHA_BUILD -D INTERNAL_BUILD"; @@ -34628,8 +34632,9 @@ ); INFOPLIST_FILE = WordPressShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = YES; OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D DEBUG"; @@ -34695,8 +34700,9 @@ ); INFOPLIST_FILE = WordPressShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_BUNDLE_IDENTIFIER = org.wordpress.WordPressShare; @@ -34761,8 +34767,9 @@ ); INFOPLIST_FILE = "WordPressShareExtension/Info-Internal.plist"; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D INTERNAL_BUILD"; @@ -34828,8 +34835,9 @@ ); INFOPLIST_FILE = "WordPressShareExtension/Info-Alpha.plist"; LD_RUNPATH_SEARCH_PATHS = ( - "@executable_path/Frameworks", "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", ); MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D ALPHA_BUILD -D INTERNAL_BUILD";