diff --git a/Podfile b/Podfile index e1fbcf6a46d0..7e40e32cb597 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. @@ -39,14 +29,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' @@ -56,29 +38,9 @@ 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) ## ===================== ## @@ -99,7 +61,6 @@ abstract_target 'Apps' do ## Automattic libraries ## ==================== ## - wordpress_shared gravatar # Production @@ -109,7 +70,6 @@ abstract_target 'Apps' do # pod 'MediaEditor', path: '../MediaEditor-iOS' aztec - wordpress_ui ## WordPress App iOS ## ================= @@ -118,7 +78,7 @@ abstract_target 'Apps' do target 'WordPressTest' do inherit! :search_paths - shared_test_pods + gutenberg_pod end end @@ -134,21 +94,13 @@ end target 'WordPressShareExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods - wordpress_ui end target 'JetpackShareExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods - wordpress_ui end ## DraftAction Extension @@ -157,74 +109,13 @@ end target 'WordPressDraftActionExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods - wordpress_ui end target 'JetpackDraftActionExtension' do project 'WordPress/WordPress.xcodeproj' - shared_with_extension_pods - aztec - shared_with_all_pods - wordpress_ui -end - -## Widgets -## ============ -## - -target 'JetpackStatsWidgets' do - project 'WordPress/WordPress.xcodeproj' - - shared_with_all_pods - wordpress_ui -end - -## Intents -## ============ -## - -target 'JetpackIntents' do - project 'WordPress/WordPress.xcodeproj' - - shared_with_all_pods - wordpress_ui -end - -## Notification Service Extension -## ============================== -## -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 -## =================== -## -target 'WordPressScreenshotGeneration' do - project 'WordPress/WordPress.xcodeproj' -end - -## UI Tests -## =================== -## -target 'WordPressUITests' do - project 'WordPress/WordPress.xcodeproj' end ## Tools @@ -248,7 +139,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] # 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..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,44 +17,33 @@ 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): - WordPress-Aztec-iOS (= 1.19.11) - - WordPressShared (2.4.0) - - WordPressUI (1.16.0) 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) - - 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 - - Expecta - Gravatar - GravatarUI - MediaEditor - - Specta - SwiftLint EXTERNAL SOURCES: @@ -73,19 +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 - WordPressShared: 0160364ed24f4d67fed4e85003fefa837faad84f - WordPressUI: f883fdd2508a0bc525c19805b2bbae980b581271 -PODFILE CHECKSUM: 2c4301332e4759f1e2cf52493c97c0c95207b1a0 +PODFILE CHECKSUM: 3f613d671323ac233553cfced32e6931b915bdc8 COCOAPODS: 1.15.2 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/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.xcworkspace/xcshareddata/swiftpm/Package.resolved b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved index cd10aa28f263..cda787a656b4 100644 --- a/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/WordPress.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -397,6 +397,24 @@ "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", 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 64aebefef7b9..bc1aebe11d65 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -15,10 +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/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/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 3c978a34b47f..7b69c89298ba 100644 --- a/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m +++ b/WordPress/Classes/ViewRelated/Menus/MenuItemAbstractView.m @@ -1,9 +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 83074af7bcd1..b4002853154d 100644 --- a/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m +++ b/WordPress/Classes/ViewRelated/Post/PostSettingsViewController.m @@ -12,14 +12,13 @@ #import #import #import "WPGUIConstants.h" -#import -#import #import "WordPress-Swift.h" @import Gridicons; @import WordPressShared; @import WordPressKit; @import WordPressUI; +@import WordPressUIObjC; @import Reachability; typedef NS_ENUM(NSInteger, PostSettingsRow) { 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+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..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" @@ -97,7 +96,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/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 95a9cc262e3e..bb2c3a368820 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -448,6 +448,34 @@ 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 */; }; + 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 */; }; + 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 */; }; + 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 */; }; + 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 */; }; @@ -520,6 +548,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 */; }; @@ -912,7 +942,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 */; }; @@ -978,8 +1007,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 */; }; @@ -1431,9 +1458,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 */; }; @@ -1471,15 +1496,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 */; }; @@ -1493,9 +1514,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, ); }; }; @@ -2472,7 +2491,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 */; }; @@ -2489,7 +2507,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 */; }; @@ -4086,7 +4103,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 */; }; @@ -4375,7 +4391,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 */; }; @@ -4387,7 +4402,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 */; }; @@ -6835,6 +6849,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 */; @@ -7045,94 +7066,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; @@ -7152,6 +7085,7 @@ dstSubfolderSpec = 10; files = ( 4AD9555B2C21716A00D0EEFA /* WordPressAuthenticator.framework in Embed Frameworks */, + 0C0DF8822C2DDE7900011B7D /* WordPressKit.framework in Embed Frameworks */, ); name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; @@ -7298,7 +7232,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 = ""; }; @@ -7516,6 +7449,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 = ""; }; @@ -7823,7 +7757,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 = ""; }; @@ -7849,7 +7782,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 = ""; }; @@ -7907,7 +7839,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 = ""; }; @@ -7991,14 +7922,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 = ""; }; @@ -8222,7 +8149,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 = ""; }; @@ -8296,7 +8222,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 = ""; }; - 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 = ""; }; + 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; }; @@ -9319,7 +9245,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 /* LoginFacadeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoginFacadeTests.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 = ""; }; @@ -9328,10 +9253,7 @@ 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 = ""; }; - 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 = ""; }; @@ -9384,7 +9306,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; }; @@ -9463,7 +9384,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 = ""; }; @@ -9540,7 +9460,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 = ""; }; @@ -9934,8 +9853,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 = ""; }; 8B0732E8242BA1F000E7FBD3 /* PrepublishingHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrepublishingHeaderView.swift; sourceTree = ""; }; @@ -9977,7 +9894,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 = ""; }; @@ -10362,25 +10278,20 @@ 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 = ""; }; 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 = ""; }; 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 = ""; }; @@ -10415,9 +10326,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; }; @@ -10522,7 +10430,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; }; @@ -10565,7 +10472,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 = ""; }; @@ -10592,7 +10498,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 = ""; }; @@ -10723,7 +10628,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 = ""; }; @@ -10745,7 +10649,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; }; @@ -10780,13 +10683,10 @@ 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 = ""; }; - 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 = ""; }; D81322B22050F9110067714D /* NotificationName+Names.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NotificationName+Names.swift"; sourceTree = ""; }; @@ -10897,7 +10797,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 = ""; }; @@ -11119,6 +11018,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 = ""; }; @@ -11222,7 +11122,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 = ""; }; @@ -11231,7 +11130,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 = ""; }; @@ -11560,6 +11458,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 = ""; }; @@ -11907,11 +11806,12 @@ isa = PBXFrameworksBuildPhase; 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 */, 0107E0DF28F97D5000DE87DB /* WidgetKit.framework in Frameworks */, - 35BBACD2917117A95B6F3046 /* Pods_JetpackStatsWidgets.framework in Frameworks */, 4A972D152C239F0D006AE0F0 /* CocoaLumberjackSwift in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -11921,7 +11821,6 @@ buildActionMask = 2147483647; files = ( 3F9F23252B0AE1AC00B56061 /* JetpackStatsWidgetsCore in Frameworks */, - C649C66318E8B5EF92B8F196 /* Pods_JetpackIntents.framework in Frameworks */, 4A972D0E2C239EBA006AE0F0 /* CocoaLumberjackSwift in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -11940,6 +11839,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 */, @@ -11976,6 +11876,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 */, @@ -12002,6 +11903,7 @@ 4A1261E22C22FF690002B427 /* NSObject-SafeExpectations in Frameworks */, 4AD028572C22ED98004FBDD0 /* UIDeviceIdentifier in Frameworks */, 4A65FC4A2C23659F006ED20C /* wpxmlrpc in Frameworks */, + 0C0DF8662C2DBF3F00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12013,6 +11915,7 @@ 4A91C6CD2C22F45E00AD6324 /* Alamofire in Frameworks */, 4AEB35B32C22B91600D5AE8C /* WordPressKit.framework in Frameworks */, 4AEB35BA2C22D43200D5AE8C /* OHHTTPStubsSwift in Frameworks */, + 0C0DF8862C2DE0C900011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12021,9 +11924,11 @@ buildActionMask = 2147483647; files = ( 4A65FC4F2C23666B006ED20C /* Gridicons in Frameworks */, + 0C0DF8682C2DBFE000011B7D /* WordPressShared in Frameworks */, 4A972D442C23B6D5006AE0F0 /* WordPressKit.framework in Frameworks */, 4A3AB6532C22F702006E0FA8 /* SVProgressHUD in Frameworks */, 4AD0285B2C22EE00004FBDD0 /* UIDeviceIdentifier in Frameworks */, + 0C86B1A52C2DB2B4001AB70C /* WordPressUI in Frameworks */, 4A65FC4D2C236649006ED20C /* NSURL+IDN in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -12032,8 +11937,11 @@ 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 */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12050,8 +11958,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DF6D9E10C4CEE05331B4DAE5 /* Pods_WordPressNotificationServiceExtension.framework in Frameworks */, + 0C0DF87A2C2DDCE200011B7D /* WordPressUI in Frameworks */, 4A972D3F2C23A4C8006AE0F0 /* WordPressKit.framework in Frameworks */, + 0C0DF87C2C2DDCEA00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12061,11 +11970,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; }; @@ -12075,11 +11986,13 @@ 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 */, 4A972D282C239FA7006AE0F0 /* ZIPFoundation in Frameworks */, 4A972D302C23A2AF006AE0F0 /* CocoaLumberjackSwift in Frameworks */, + 0C0DF86C2C2DC01A00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12089,11 +12002,13 @@ 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 */, 223EA61E212A7C26A456C32C /* Pods_JetpackDraftActionExtension.framework in Frameworks */, 4A972D362C23A325006AE0F0 /* ZIPFoundation in Frameworks */, + 0C0DF86A2C2DC01100011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12101,8 +12016,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DCAD9FCC94B311DCE8988D91 /* Pods_JetpackNotificationServiceExtension.framework in Frameworks */, + 0C0DF85B2C2DB5EC00011B7D /* WordPressUI in Frameworks */, 4A972D0F2C239EED006AE0F0 /* WordPressKit.framework in Frameworks */, + 0C0DF86E2C2DC05B00011B7D /* WordPressShared in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12111,7 +12027,6 @@ buildActionMask = 2147483647; files = ( 3FA640622670CE260064401E /* UITestsFoundation.framework in Frameworks */, - 2611CC62A62F9E6BC25350FE /* Pods_WordPressScreenshotGeneration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -12121,11 +12036,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; }; @@ -12134,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 */, @@ -12155,6 +12074,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 */, @@ -12173,6 +12093,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 */, @@ -12190,6 +12111,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 */, @@ -12220,8 +12142,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; }; @@ -13495,7 +13415,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 */, @@ -13506,12 +13425,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 = ""; @@ -16529,7 +16442,7 @@ 4AD955922C2171F000D0EEFA /* Services */ = { isa = PBXGroup; children = ( - 4AD955912C2171F000D0EEFA /* LoginFacadeTests.m */, + 0C0DF8932C2DF12A00011B7D /* LoginFacadeTests.m */, ); path = Services; sourceTree = ""; @@ -19536,26 +19449,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 */, @@ -19571,23 +19468,11 @@ 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 */, + 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 = ""; @@ -23004,11 +22889,9 @@ isa = PBXNativeTarget; buildConfigurationList = 0107E0E528F97D5000DE87DB /* Build configuration list for PBXNativeTarget "JetpackStatsWidgets" */; buildPhases = ( - 0107E0B228F97D5000DE87DB /* [CP] Check Pods Manifest.lock */, 0107E0B328F97D5000DE87DB /* Sources */, 0107E0DD28F97D5000DE87DB /* Frameworks */, 0107E0E128F97D5000DE87DB /* Resources */, - 4A972D1A2C239F23006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23019,6 +22902,8 @@ packageProductDependencies = ( 3FFB3F1F2AFC70B400A742B0 /* JetpackStatsWidgetsCore */, 4A972D142C239F0D006AE0F0 /* CocoaLumberjackSwift */, + 0C0DF8602C2DB62E00011B7D /* WordPressUI */, + 0C0DF86F2C2DC06C00011B7D /* WordPressShared */, ); productName = WordPressHomeWidgetTodayExtension; productReference = 0107E0EA28F97D5000DE87DB /* JetpackStatsWidgets.appex */; @@ -23028,7 +22913,6 @@ isa = PBXNativeTarget; buildConfigurationList = 0107E14F28FE9DB200DE87DB /* Build configuration list for PBXNativeTarget "JetpackIntents" */; buildPhases = ( - 0107E13928FE9DB200DE87DB /* [CP] Check Pods Manifest.lock */, 0107E13A28FE9DB200DE87DB /* Sources */, 0107E14A28FE9DB200DE87DB /* Frameworks */, 0107E14C28FE9DB200DE87DB /* Resources */, @@ -23095,6 +22979,8 @@ 4A3E8C4C2C238471003628B3 /* Gifu */, 4AE417E32C23870400B383AF /* ZendeskSupportSDK */, 4A0CB2842C238B7800A006B0 /* CocoaLumberjackSwift */, + 0C0DF87D2C2DDD4900011B7D /* WordPressUI */, + 0C0DF87F2C2DDD5100011B7D /* WordPressShared */, ); productName = WordPress; productReference = 1D6058910D05DD3D006BFB54 /* WordPress.app */; @@ -23141,6 +23027,7 @@ 4AD028562C22ED98004FBDD0 /* UIDeviceIdentifier */, 4A1261E12C22FF690002B427 /* NSObject-SafeExpectations */, 4A65FC492C23659F006ED20C /* wpxmlrpc */, + 0C0DF8652C2DBF3F00011B7D /* WordPressShared */, ); productName = WordPressKit; productReference = 4A98A2F42C22736F00A2CE58 /* WordPressKit.framework */; @@ -23153,7 +23040,6 @@ 4A98A2F72C22736F00A2CE58 /* Sources */, 4A98A2F82C22736F00A2CE58 /* Frameworks */, 4A98A2F92C22736F00A2CE58 /* Resources */, - 4A41C6DC2C22B1C6007F353D /* [Custom] Embed Frameworks */, 4AEB35B52C22B91600D5AE8C /* Embed Frameworks */, ); buildRules = ( @@ -23166,6 +23052,7 @@ 4AEB35B92C22D43200D5AE8C /* OHHTTPStubsSwift */, 4AD028602C22EEAB004FBDD0 /* OCMock */, 4A91C6CC2C22F45E00AD6324 /* Alamofire */, + 0C0DF8852C2DE0C900011B7D /* WordPressShared */, ); productName = WordPressKitTests; productReference = 4A98A2FB2C22736F00A2CE58 /* WordPressKitTests.xctest */; @@ -23179,7 +23066,6 @@ 4AD953B02C21451700D0EEFA /* Sources */, 4AD953B12C21451700D0EEFA /* Frameworks */, 4AD953B22C21451700D0EEFA /* Resources */, - 4A972D482C23B6D5006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23192,6 +23078,8 @@ 4A3AB6522C22F702006E0FA8 /* SVProgressHUD */, 4A65FC4C2C236649006ED20C /* NSURL+IDN */, 4A65FC4E2C23666B006ED20C /* Gridicons */, + 0C86B1A42C2DB2B4001AB70C /* WordPressUI */, + 0C0DF8672C2DBFE000011B7D /* WordPressShared */, ); productName = WordPressAuthenticator; productReference = 4AD953B42C21451700D0EEFA /* WordPressAuthenticator.framework */; @@ -23204,8 +23092,6 @@ 4AD953B72C21451700D0EEFA /* Sources */, 4AD953B82C21451700D0EEFA /* Frameworks */, 4AD953B92C21451700D0EEFA /* Resources */, - 4A0274852C22481A00290D8B /* Copy Resources */, - 4A0274A42C22674D00290D8B /* [Custom] Embed Frameworks */, 4A0274882C224FB000290D8B /* Embed Frameworks */, ); buildRules = ( @@ -23216,6 +23102,9 @@ name = WordPressAuthenticatorTests; packageProductDependencies = ( 4AD028622C22EEBB004FBDD0 /* OCMock */, + 0C0DF8872C2DE1D100011B7D /* WordPressShared */, + 0C0DF88B2C2DE6FD00011B7D /* SVProgressHUD */, + 0C0DF88D2C2DE71200011B7D /* Gridicons */, ); productName = WordPressAuthenticatorTests; productReference = 4AD953BB2C21451700D0EEFA /* WordPressAuthenticatorTests.xctest */; @@ -23242,11 +23131,9 @@ isa = PBXNativeTarget; buildConfigurationList = 7358E6C4210BD318002323EB /* Build configuration list for PBXNativeTarget "WordPressNotificationServiceExtension" */; buildPhases = ( - BAE780768320204E29A6FE5B /* [CP] Check Pods Manifest.lock */, 7358E6B4210BD318002323EB /* Sources */, 7358E6B5210BD318002323EB /* Frameworks */, 7358E6B6210BD318002323EB /* Resources */, - 4A972D432C23A4C8006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23255,6 +23142,8 @@ ); name = WordPressNotificationServiceExtension; packageProductDependencies = ( + 0C0DF8792C2DDCE200011B7D /* WordPressUI */, + 0C0DF87B2C2DDCEA00011B7D /* WordPressShared */, ); productName = WordPressNotificationServiceExtension; productReference = 7358E6B8210BD318002323EB /* WordPressNotificationServiceExtension.appex */; @@ -23269,7 +23158,6 @@ 7457666F202B558C00F42E40 /* Frameworks */, 74576670202B558C00F42E40 /* Resources */, 9D186898B0632AA1273C9DE2 /* [CP] Copy Pods Resources */, - 4A65FC5B2C23677D006ED20C /* Embed Frameworks */, ); buildRules = ( ); @@ -23283,6 +23171,8 @@ 4A3E8C412C238365003628B3 /* ZIPFoundation */, 4A3E8C452C238396003628B3 /* Down */, 4A0CB2822C2388DC00A006B0 /* CocoaLumberjackSwift */, + 0C0DF8752C2DDCC500011B7D /* WordPressUI */, + 0C0DF8772C2DDCCE00011B7D /* WordPressShared */, ); productName = WordPressDraftActionExtension; productReference = 74576672202B558C00F42E40 /* WordPressDraftActionExtension.appex */; @@ -23297,7 +23187,6 @@ 8096211428E540D700940A5D /* Frameworks */, 8096211628E540D700940A5D /* Resources */, 4C304224F0F810A17D96A402 /* [CP] Copy Pods Resources */, - 4A972D1F2C239F3C006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23311,6 +23200,8 @@ 4A972D2F2C23A2AF006AE0F0 /* CocoaLumberjackSwift */, 4A972D312C23A2CD006AE0F0 /* Reachability */, 4A972D332C23A30C006AE0F0 /* Gridicons */, + 0C0DF85C2C2DB60100011B7D /* WordPressUI */, + 0C0DF86B2C2DC01A00011B7D /* WordPressShared */, ); productName = WordPressShare; productReference = 8096212328E540D700940A5D /* JetpackShareExtension.appex */; @@ -23325,7 +23216,6 @@ 8096217528E55C9400940A5D /* Frameworks */, 8096217728E55C9400940A5D /* Resources */, D880C306E1943EA76DA53078 /* [CP] Copy Pods Resources */, - 4A972D262C239F7D006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23339,6 +23229,8 @@ 4A972D2D2C23A03A006AE0F0 /* Down */, 4A972D352C23A325006AE0F0 /* ZIPFoundation */, 4A972D372C23A377006AE0F0 /* Gridicons */, + 0C0DF85E2C2DB61300011B7D /* WordPressUI */, + 0C0DF8692C2DC01100011B7D /* WordPressShared */, ); productName = WordPressDraftActionExtension; productReference = 8096218528E55C9400940A5D /* JetpackDraftActionExtension.appex */; @@ -23348,11 +23240,9 @@ isa = PBXNativeTarget; buildConfigurationList = 80F6D04F28EE866A00953C1A /* Build configuration list for PBXNativeTarget "JetpackNotificationServiceExtension" */; buildPhases = ( - 80F6D02028EE866A00953C1A /* [CP] Check Pods Manifest.lock */, 80F6D02128EE866A00953C1A /* Sources */, 80F6D04A28EE866A00953C1A /* Frameworks */, 80F6D04C28EE866A00953C1A /* Resources */, - 4A972D132C239EED006AE0F0 /* Embed Frameworks */, ); buildRules = ( ); @@ -23360,6 +23250,10 @@ 4A972D122C239EED006AE0F0 /* PBXTargetDependency */, ); name = JetpackNotificationServiceExtension; + packageProductDependencies = ( + 0C0DF85A2C2DB5EC00011B7D /* WordPressUI */, + 0C0DF86D2C2DC05B00011B7D /* WordPressShared */, + ); productName = WordPressNotificationServiceExtension; productReference = 80F6D05428EE866A00953C1A /* JetpackNotificationServiceExtension.appex */; productType = "com.apple.product-type.app-extension"; @@ -23368,7 +23262,6 @@ isa = PBXNativeTarget; buildConfigurationList = 8511CFC21C607A7000B7CEED /* Build configuration list for PBXNativeTarget "WordPressScreenshotGeneration" */; buildPhases = ( - 2DF08408C90B90D744C56E02 /* [CP] Check Pods Manifest.lock */, 8511CFB21C607A7000B7CEED /* Sources */, 8511CFB31C607A7000B7CEED /* Frameworks */, 8511CFB41C607A7000B7CEED /* Resources */, @@ -23392,7 +23285,6 @@ 932225A41C7CE50300443B02 /* Frameworks */, 932225A51C7CE50300443B02 /* Resources */, 83D79708413A3DA10638659F /* [CP] Copy Pods Resources */, - 4A65FC562C236746006ED20C /* Embed Frameworks */, ); buildRules = ( ); @@ -23406,6 +23298,8 @@ 4A3E8C432C238378003628B3 /* Down */, 4A3E8C472C2383FD003628B3 /* ZIPFoundation */, 4A0CB2802C2388CF00A006B0 /* CocoaLumberjackSwift */, + 0C0DF8712C2DDCA800011B7D /* WordPressUI */, + 0C0DF8732C2DDCB000011B7D /* WordPressShared */, ); productName = WordPressShare; productReference = 932225A71C7CE50300443B02 /* WordPressShareExtension.appex */; @@ -23433,6 +23327,8 @@ 3FFB3F232AFC730C00A742B0 /* JetpackStatsWidgetsCore */, 4AEB35B72C22D25B00D5AE8C /* OHHTTPStubsSwift */, 4AEB35BC2C22E59C00D5AE8C /* OCMock */, + 0C0DF8952C2E10B100011B7D /* WordPressShared */, + 0C0DF8972C2E10E600011B7D /* WordPressUI */, ); productName = WordPressTest; productReference = E16AB92A14D978240047A2E5 /* WordPressTest.xctest */; @@ -23488,6 +23384,7 @@ 8096219028E55F8600940A5D /* PBXTargetDependency */, 80F6D05F28EE88FC00953C1A /* PBXTargetDependency */, 4AD9555D2C21716A00D0EEFA /* PBXTargetDependency */, + 0C0DF8842C2DDE7900011B7D /* PBXTargetDependency */, ); name = Jetpack; packageProductDependencies = ( @@ -23509,6 +23406,8 @@ 4A972D392C23A3B0006AE0F0 /* ZendeskSupportSDK */, 4A972D3B2C23A3D2006AE0F0 /* Reachability */, 4A972D3D2C23A3ED006AE0F0 /* Starscream */, + 0C86B1A02C2DB2A7001AB70C /* WordPressUI */, + 0C0DF8632C2DBF1500011B7D /* WordPressShared */, ); productName = WordPress; productReference = FABB26522602FC2C00C8785C /* Jetpack.app */; @@ -23536,7 +23435,6 @@ isa = PBXNativeTarget; buildConfigurationList = FF27169A1CAAC87B0006E2D4 /* Build configuration list for PBXNativeTarget "WordPressUITests" */; buildPhases = ( - 37F48D4CB364EA4BCC1EAE82 /* [CP] Check Pods Manifest.lock */, FF27168B1CAAC87A0006E2D4 /* Sources */, FF27168C1CAAC87A0006E2D4 /* Frameworks */, FF27168D1CAAC87A0006E2D4 /* Resources */, @@ -23762,6 +23660,8 @@ 4A3E8C492C23844E003628B3 /* XCRemoteSwiftPackageReference "JTAppleCalendar" */, 4AE417E22C23866900B383AF /* XCRemoteSwiftPackageReference "support_sdk_ios" */, 4A0CB27B2C23883B00A006B0 /* XCRemoteSwiftPackageReference "CocoaLumberjack" */, + 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */, + 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */, ); productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */; projectDirPath = ""; @@ -25059,50 +24959,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; @@ -25165,28 +25021,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; @@ -25216,15 +25050,11 @@ ); 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", ); @@ -25233,28 +25063,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; @@ -25295,66 +25103,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"; - }; - 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; @@ -25433,24 +25181,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; @@ -25553,24 +25283,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; @@ -25741,15 +25453,11 @@ ); 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", ); @@ -28488,9 +28196,9 @@ 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 */, - 4AD955C32C2171F000D0EEFA /* LoginFacadeTests.m in Sources */, 4AD955A62C2171F000D0EEFA /* Data+SHA256Tests.swift in Sources */, 4AD955BB2C2171F000D0EEFA /* WordpressAuthenticatorProvider.swift in Sources */, 4AD955C12C2171F000D0EEFA /* NavigationToEnterSiteTests.swift in Sources */, @@ -31386,6 +31094,11 @@ target = 096A92F526E29FFF00448C68 /* GenerateCredentials */; targetProxy = 096A92FC26E2A0AE00448C68 /* PBXContainerItemProxy */; }; + 0C0DF8842C2DDE7900011B7D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 4A98A2F32C22736F00A2CE58 /* WordPressKit */; + targetProxy = 0C0DF8832C2DDE7900011B7D /* PBXContainerItemProxy */; + }; 3F47AC502A72074300208F0D /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 3F47AC482A7206BE00208F0D /* ConfigureSimulatorForUITesting */; @@ -31709,7 +31422,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; @@ -31765,7 +31477,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; @@ -31817,7 +31528,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; @@ -31870,7 +31580,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; @@ -31923,7 +31632,6 @@ }; 0107E15028FE9DB200DE87DB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 87A8AC8362510EB42708E5B3 /* Pods-JetpackIntents.debug.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -31976,7 +31684,6 @@ }; 0107E15128FE9DB200DE87DB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 549D51B99FF59CBE21A37CBF /* Pods-JetpackIntents.release.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -32026,7 +31733,6 @@ }; 0107E15228FE9DB200DE87DB /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4391027D80CFEDF45B8712A3 /* Pods-JetpackIntents.release-internal.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -32077,7 +31783,6 @@ }; 0107E15328FE9DB200DE87DB /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B124AFFFB3F0204107FD33D0 /* Pods-JetpackIntents.release-alpha.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -32553,6 +32258,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"; @@ -32608,6 +32314,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"; @@ -32661,6 +32368,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"; @@ -32714,6 +32422,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"; @@ -32764,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; @@ -32800,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; @@ -32834,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; @@ -32868,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; @@ -33430,7 +33143,6 @@ }; 7358E6C0210BD318002323EB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A27DA63A5ECD1D0262C589EC /* Pods-WordPressNotificationServiceExtension.debug.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -33479,7 +33191,6 @@ }; 7358E6C1210BD318002323EB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 73FEFF1991AE9912FB2DA9BC /* Pods-WordPressNotificationServiceExtension.release.xcconfig */; buildSettings = { CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -33526,7 +33237,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; @@ -33573,7 +33283,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; @@ -33622,7 +33331,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; @@ -33678,7 +33386,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; @@ -33731,7 +33438,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; @@ -33785,7 +33491,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; @@ -33839,7 +33544,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 = ""; @@ -33891,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"; @@ -33911,7 +33616,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 = ""; @@ -33961,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; @@ -33979,7 +33684,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 = ""; @@ -34030,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"; @@ -34049,7 +33754,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 = ""; @@ -34100,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"; @@ -34119,7 +33824,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; @@ -34176,7 +33880,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; @@ -34230,7 +33933,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; @@ -34285,7 +33987,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; @@ -34338,7 +34039,6 @@ }; 80F6D05028EE866A00953C1A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 33E5165A9AB08C676380FA34 /* Pods-JetpackNotificationServiceExtension.debug.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34388,7 +34088,6 @@ }; 80F6D05128EE866A00953C1A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 49E3445F1B568603958DA79D /* Pods-JetpackNotificationServiceExtension.release.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34436,7 +34135,6 @@ }; 80F6D05228EE866A00953C1A /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D01FA8A28AD63D2600800134 /* Pods-JetpackNotificationServiceExtension.release-internal.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34484,7 +34182,6 @@ }; 80F6D05328EE866A00953C1A /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3C8DE270EF0498A2129349B0 /* Pods-JetpackNotificationServiceExtension.release-alpha.xcconfig */; buildSettings = { BUILD_SCHEME = Jetpack; CLANG_ANALYZER_NONNULL = YES; @@ -34532,7 +34229,6 @@ }; 8511CFBD1C607A7000B7CEED /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C8FC2DE857126670AE377B5D /* Pods-WordPressScreenshotGeneration.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -34586,7 +34282,6 @@ }; 8511CFBE1C607A7000B7CEED /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DB915AD54243A8AE0039B0C7 /* Pods-WordPressScreenshotGeneration.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; @@ -34634,7 +34329,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"; @@ -34678,7 +34372,6 @@ }; 8511CFC01C607A7000B7CEED /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 528B9926294302CD0A4EB5C4 /* Pods-WordPressScreenshotGeneration.release-alpha.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; APPLICATION_EXTENSION_API_ONLY = NO; @@ -34890,7 +34583,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 = ""; @@ -34940,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"; @@ -34960,7 +34653,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 = ""; @@ -35008,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; @@ -35026,7 +34719,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 = ""; @@ -35075,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"; @@ -35094,7 +34787,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 = ""; @@ -35143,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"; @@ -36187,7 +35880,6 @@ }; FF2716961CAAC87B0006E2D4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CB72288DBD93471DA0AD878A /* Pods-WordPressUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; @@ -36241,7 +35933,6 @@ }; FF2716971CAAC87B0006E2D4 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8B9E15DAF3E1A369E9BE3407 /* Pods-WordPressUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; @@ -36289,7 +35980,6 @@ }; FF2716981CAAC87B0006E2D4 /* Release-Internal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B8EED8FA87452C1FD113FD04 /* Pods-WordPressUITests.release-internal.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; @@ -36333,7 +36023,6 @@ }; FF2716991CAAC87B0006E2D4 /* Release-Alpha */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5C1CEB34870A8BA1ED1E502B /* Pods-WordPressUITests.release-alpha.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CLANG_ANALYZER_NONNULL = YES; @@ -36703,6 +36392,22 @@ /* 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"; + requirement = { + branch = "kean-patch-1"; + kind = branch; + }; + }; 0CD9FB852AFA71B9009D9C7A /* XCRemoteSwiftPackageReference "Charts" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/danielgindi/Charts"; @@ -36954,6 +36659,141 @@ 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; + }; + 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; + }; + 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; + }; + 0C0DF8852C2DE0C900011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + package = 0C0DF8622C2DBF1500011B7D /* XCRemoteSwiftPackageReference "WordPress-iOS-Shared" */; + productName = WordPressShared; + }; + 0C0DF8872C2DE1D100011B7D /* WordPressShared */ = { + isa = XCSwiftPackageProductDependency; + 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; + }; + 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" */; + productName = WordPressUI; + }; + 0C86B1A42C2DB2B4001AB70C /* WordPressUI */ = { + isa = XCSwiftPackageProductDependency; + package = 0C86B19F2C2DB2A7001AB70C /* XCRemoteSwiftPackageReference "WordPressUI-iOS" */; + productName = WordPressUI; + }; 0CD9FB862AFA71B9009D9C7A /* DGCharts */ = { isa = XCSwiftPackageProductDependency; package = 0CD9FB852AFA71B9009D9C7A /* XCRemoteSwiftPackageReference "Charts" */; 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 { 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/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/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/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/Button/NUXButtonViewController.swift b/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift index ba4598d00108..507bcbf11df3 100644 --- a/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift +++ b/WordPressAuthenticator/Sources/NUX/Button/NUXButtonViewController.swift @@ -1,10 +1,16 @@ import UIKit import WordPressKit +import WordPressShared -@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 +255,7 @@ open class NUXButtonViewController: UIViewController { @IBAction func secondaryButtonPressed(_ sender: Any) { guard let callback = topButtonConfig?.callback else { - delegate?.secondaryButtonPressed?() + delegate?.secondaryButtonPressed() return } callback() @@ -257,7 +263,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/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/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/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 1137fa80baad..c0cf101d0c71 100644 --- a/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m +++ b/WordPressAuthenticator/Sources/NUX/WPWalkthroughOverlayView.m @@ -1,10 +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/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/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/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/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.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/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..2cd3ff932a83 100644 --- a/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m +++ b/WordPressAuthenticator/Tests/Services/LoginFacadeTests.m @@ -1,281 +1,269 @@ -#import -#define EXP_SHORTHAND -#import -#import +#import "WordPressAuthenticatorTests-Swift.h" #import "LoginFacade.h" #import "WordPressXMLRPCAPIFacade.h" -#import "WPAuthenticator-Swift.h" -#if __has_include("WordPressAuthenticatorTests-Swift.h") -#import "WordPressAuthenticatorTests-Swift.h" -#endif +@import OCMock; +@import XCTest; +@import WordPressShared; +@import WordPressAuthenticator; +@import WordPressKit; -#if __has_include("WordPressAuthenticator_Unit_Tests-Swift.h") -#import "WordPressAuthenticator_Unit_Tests-Swift.h" -#endif +@interface LoginFacadeTests: XCTestCase -@import WordPressKit; +@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 -SpecBegin(LoginFacade) +@implementation LoginFacadeTests -__block LoginFacade *loginFacade; -__block id mockOAuthFacade; -__block id mockXMLRPCAPIFacade; -__block id mockLoginFacade; -__block id mockLoginFacadeDelegate; -__block LoginFields *loginFields; +- (void)setUp { + [super setUp]; -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 + 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 diff --git a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h index 71b827aafbaa..de532c2267ae 100644 --- a/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h +++ b/WordPressKit/Sources/WordPressKit/Logging/WPKitLogging.h @@ -1,6 +1,6 @@ #import -@import WordPressShared; +@import WordPressSharedObjC; NS_ASSUME_NONNULL_BEGIN 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/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/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/WordPressAuthenticator.xcconfig b/config/WordPressAuthenticator.xcconfig index 2a73053e8e72..8914e2e41894 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}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressUI ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressShared -framework WordPressUI -framework WordPressKit diff --git a/config/WordPressAuthenticatorTests.xcconfig b/config/WordPressAuthenticatorTests.xcconfig index 2a5812d1e245..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}/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 - -PODS_ROOT = ${SRCROOT}/../Pods -PODS_CONFIGURATION_BUILD_DIR = ${BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 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..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}/WordPressShared ${WP_EFFECTIVE_BUILD_DIR}/WordPressKit -OTHER_LDFLAGS = $(inherited) -liconv -framework WordPressShared -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