From 2102258f7a57190351a59b9c71f2242a131c9a28 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Sat, 4 Sep 2021 10:19:32 -0400 Subject: [PATCH 01/14] mkdir fix --- Scripts/build_aggregate.sh | 2 ++ Scripts/download_dependencies.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index 514d0075..4803094c 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -1,3 +1,5 @@ +#!/bin/bash -e + unset TOOLCHAINS #Xcode 7.3 BUG FIX http://stackoverflow.com/questions/36184930/xcodebuild-7-3-cant-enable-bitcode # define output folder environment variable diff --git a/Scripts/download_dependencies.sh b/Scripts/download_dependencies.sh index f03a25e8..96c36c54 100755 --- a/Scripts/download_dependencies.sh +++ b/Scripts/download_dependencies.sh @@ -15,7 +15,7 @@ BUILD_DIR=$(xcodebuild -showBuildSettings -project ./MVMCoreUI.xcodeproj | grep FRAMEWORKS_DIR=$BUILD_DIR/Frameworks if [ ! -d $FRAMEWORKS_DIR ]; then - mkdir $FRAMEWORKS_DIR + mkdir -p $FRAMEWORKS_DIR fi ./Scripts/download_framework.sh $ARTIFACTORY_URL "$FRAMEWORKS_DIR/MVMCore.framework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCore/1.0/MVMCore-1.0-Debug-SNAPSHOT.zip From 3c4d432f8c11d12986c793d6412eae4a3925101a Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 7 Sep 2021 12:43:47 -0400 Subject: [PATCH 02/14] testing --- Scripts/build_aggregate.sh | 2 +- Scripts/download_dependencies.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index 4803094c..e5b007ce 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -8,7 +8,7 @@ PHONE_CONFIGURATION="Release" SIMULATOR_CONFIGURATION="Debug" BUILD_DIR=$(xcodebuild -showBuildSettings -project ./MVMCoreUI.xcodeproj | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${SIMULATOR_CONFIGURATION}-iphonesimulator/${C_PROJECT_NAME}.framework" -FRAMEWORKS_DIR=$BUILD_DIR/Frameworks +FRAMEWORKS_DIR=$BUILD_DIR/../../../Frameworks/MVMCoreUI UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/universal # Step 1. Build Device and Simulator versions diff --git a/Scripts/download_dependencies.sh b/Scripts/download_dependencies.sh index 96c36c54..10d11351 100755 --- a/Scripts/download_dependencies.sh +++ b/Scripts/download_dependencies.sh @@ -12,7 +12,7 @@ if [ -z $ARTIFACTORY_URL ]; then fi BUILD_DIR=$(xcodebuild -showBuildSettings -project ./MVMCoreUI.xcodeproj | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) -FRAMEWORKS_DIR=$BUILD_DIR/Frameworks +FRAMEWORKS_DIR=$BUILD_DIR/../../../Frameworks/MVMCoreUI if [ ! -d $FRAMEWORKS_DIR ]; then mkdir -p $FRAMEWORKS_DIR From 5af99eb6939b2fb177f21de76deffd8bb7167f27 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 7 Sep 2021 12:48:03 -0400 Subject: [PATCH 03/14] change checksum location --- Scripts/download_framework.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scripts/download_framework.sh b/Scripts/download_framework.sh index 9e9e2bb5..5d602e0a 100755 --- a/Scripts/download_framework.sh +++ b/Scripts/download_framework.sh @@ -14,7 +14,7 @@ LOGFILE=$3 LOCALDIR=$(dirname "${LOCALPATH}") LOCALBASE=$(basename "${LOCALPATH}") NEWFILEPATH="${LOCALDIR}"/$(basename "${REMOTEPATH}") -VERSIONFILE=$LOCALDIR/../Checksums/"${LOCALBASE}".txt +VERSIONFILE=$LOCALDIR/Checksums/"${LOCALBASE}".txt if [ -z $URL ]; then echo "The artifactory instance url must be specified as the first argument!" From ddcb21b493eb23ddbb692ca0f48379619a2076ea Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 7 Sep 2021 13:32:40 -0400 Subject: [PATCH 04/14] branch change --- .gitlab-ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d475e062..8fe891d2 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,7 +16,6 @@ download_artifacts: script: - ./Scripts/download_dependencies.sh only: - - branches - develop tags: - bash_shell @@ -31,7 +30,6 @@ build_project: script: - ./Scripts/build_aggregate.sh only: - - branches - develop tags: - xcode_12_2 @@ -41,7 +39,6 @@ deploy_snapshot: script: - cd Scripts && ./upload_core_ui_frameworks.sh only: - - branches - develop tags: - bash_shell From 008a2a382a262871fe0a6697abf4843f695a44da Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 15:57:01 -0400 Subject: [PATCH 05/14] XCFramework and warning fixes --- MVMCoreUI.xcodeproj/project.pbxproj | 28 +++++---- MVMCoreUI/Alerts/MVMCoreAlertHandler.m | 8 +-- MVMCoreUI/Alerts/MVMCoreAlertObject.h | 6 +- MVMCoreUI/Alerts/MVMCoreAlertObject.m | 20 +++--- MVMCoreUI/Alerts/MVMCoreAlertOperation.h | 2 +- MVMCoreUI/Alerts/MVMCoreAlertOperation.m | 4 +- .../Atomic/Atoms/Selectors/RadioBoxes.swift | 2 +- .../Extensions/UIPickerView+Extension.swift | 1 - MVMCoreUI/BaseClasses/TextField.swift | 2 +- .../MVMCoreUISplitViewController.m | 4 +- .../MVMCoreUIActionDelegateProtocol.h | 2 +- .../OtherHandlers/MVMCoreUIActionHandler.h | 2 +- .../MVMCoreUIViewControllerMappingObject.h | 2 +- .../MVMCoreUIViewControllerMappingObject.m | 2 +- MVMCoreUI/TopAlert/MVMCoreTopAlertObject.m | 6 +- MVMCoreUI/TopAlert/MVMCoreTopAlertOperation.h | 2 +- .../TopAlert/MVMCoreUITopAlertBaseView.h | 2 +- .../TopAlert/MVMCoreUITopAlertBaseView.m | 10 +-- .../MVMCoreUITopAlertExpandableView.m | 6 +- .../TopAlert/MVMCoreUITopAlertMainView.m | 6 +- .../Utility/MVMCoreUICommonViewsUtility.m | 1 - MVMCoreUI/Utility/MVMCoreUIUtility.m | 12 ++-- MVMCoreUI/Utility/Sizing/MFSizeObject.m | 5 +- Scripts/build_aggregate.sh | 61 +++++++++++++------ Scripts/download_dependencies.sh | 8 ++- Scripts/upload_core_ui_frameworks.sh | 5 +- 26 files changed, 119 insertions(+), 90 deletions(-) diff --git a/MVMCoreUI.xcodeproj/project.pbxproj b/MVMCoreUI.xcodeproj/project.pbxproj index b263a72f..99952700 100644 --- a/MVMCoreUI.xcodeproj/project.pbxproj +++ b/MVMCoreUI.xcodeproj/project.pbxproj @@ -197,7 +197,6 @@ 9445891F2385D2E900DE9FD4 /* CaretViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9445891E2385D2E900DE9FD4 /* CaretViewModel.swift */; }; 944589212385D6E900DE9FD4 /* DashLineModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 944589202385D6E900DE9FD4 /* DashLineModel.swift */; }; 944589232385DA9600DE9FD4 /* ImageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 944589222385DA9500DE9FD4 /* ImageViewModel.swift */; }; - 9455B19C234F8A0400A574DB /* MVMAnimationFramework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9455B19B234F8A0400A574DB /* MVMAnimationFramework.framework */; }; 9458C3172406C8FD00930963 /* UIFont+FontWrapping.h in Headers */ = {isa = PBXBuildFile; fileRef = 9458C3152406C8FD00930963 /* UIFont+FontWrapping.h */; settings = {ATTRIBUTES = (Public, ); }; }; 9458C3182406C8FD00930963 /* UIFont+FontWrapping.m in Sources */ = {isa = PBXBuildFile; fileRef = 9458C3162406C8FD00930963 /* UIFont+FontWrapping.m */; }; 948DB67E2326DCD90011F916 /* MultiProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948DB67D2326DCD90011F916 /* MultiProgress.swift */; }; @@ -276,6 +275,7 @@ AAE7270E24AC8B9300A3ED0E /* HeadersH2CaretLink.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAE7270D24AC8B9300A3ED0E /* HeadersH2CaretLink.swift */; }; AAE96FA225341F6A0037A989 /* ListStoreLocatorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAE96FA125341F6A0037A989 /* ListStoreLocatorModel.swift */; }; AAE96FA525341F7D0037A989 /* ListStoreLocator.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAE96FA425341F7D0037A989 /* ListStoreLocator.swift */; }; + AF81F990287498F4006F7F11 /* MVMAnimationFramework.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF81F98F287498F3006F7F11 /* MVMAnimationFramework.xcframework */; }; AFE4A1D127DFB5EE00C458D0 /* VDSColorTokens.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFE4A1D027DFB5EE00C458D0 /* VDSColorTokens.xcframework */; }; AFE4A1D627DFBB6F00C458D0 /* UINavigationController+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFE4A1D527DFBB6F00C458D0 /* UINavigationController+Extension.swift */; }; BB105859248DEFF70069D008 /* UICollectionViewLeftAlignedLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB105858248DEFF60069D008 /* UICollectionViewLeftAlignedLayout.swift */; }; @@ -789,7 +789,6 @@ 9445891E2385D2E900DE9FD4 /* CaretViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaretViewModel.swift; sourceTree = ""; }; 944589202385D6E900DE9FD4 /* DashLineModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashLineModel.swift; sourceTree = ""; }; 944589222385DA9500DE9FD4 /* ImageViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageViewModel.swift; sourceTree = ""; }; - 9455B19B234F8A0400A574DB /* MVMAnimationFramework.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MVMAnimationFramework.framework; path = ../SharedFrameworks/MVMAnimationFramework.framework; sourceTree = ""; }; 9458C3152406C8FD00930963 /* UIFont+FontWrapping.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIFont+FontWrapping.h"; sourceTree = ""; }; 9458C3162406C8FD00930963 /* UIFont+FontWrapping.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIFont+FontWrapping.m"; sourceTree = ""; }; 948DB67D2326DCD90011F916 /* MultiProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiProgress.swift; sourceTree = ""; }; @@ -867,6 +866,7 @@ AAE7270D24AC8B9300A3ED0E /* HeadersH2CaretLink.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadersH2CaretLink.swift; sourceTree = ""; }; AAE96FA125341F6A0037A989 /* ListStoreLocatorModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListStoreLocatorModel.swift; sourceTree = ""; }; AAE96FA425341F7D0037A989 /* ListStoreLocator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListStoreLocator.swift; sourceTree = ""; }; + AF81F98F287498F3006F7F11 /* MVMAnimationFramework.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMAnimationFramework.xcframework; path = ../SharedFrameworks/MVMAnimationFramework.xcframework; sourceTree = ""; }; AFE4A1D027DFB5EE00C458D0 /* VDSColorTokens.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = VDSColorTokens.xcframework; path = ../SharedFrameworks/VDSColorTokens.xcframework; sourceTree = ""; }; AFE4A1D527DFBB6F00C458D0 /* UINavigationController+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UINavigationController+Extension.swift"; sourceTree = ""; }; BB105858248DEFF60069D008 /* UICollectionViewLeftAlignedLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UICollectionViewLeftAlignedLayout.swift; sourceTree = ""; }; @@ -1194,8 +1194,8 @@ files = ( D29DF0E621E4F3C7003B2FB9 /* MVMCore.framework in Frameworks */, AFE4A1D127DFB5EE00C458D0 /* VDSColorTokens.xcframework in Frameworks */, - 9455B19C234F8A0400A574DB /* MVMAnimationFramework.framework in Frameworks */, 187FEB2A2844D2A600BF29C2 /* VDSFormControlsTokens.xcframework in Frameworks */, + AF81F990287498F4006F7F11 /* MVMAnimationFramework.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2028,10 +2028,10 @@ D29DF0E421E4F3C7003B2FB9 /* Frameworks */ = { isa = PBXGroup; children = ( + AF81F98F287498F3006F7F11 /* MVMAnimationFramework.xcframework */, 187FEB292844D2A600BF29C2 /* VDSFormControlsTokens.xcframework */, AFE4A1D027DFB5EE00C458D0 /* VDSColorTokens.xcframework */, - D29DF0E521E4F3C7003B2FB9 /* MVMCore.framework */, - 9455B19B234F8A0400A574DB /* MVMAnimationFramework.framework */, + D29DF0E521E4F3C7003B2FB9 /* MVMCore.framework */, ); name = Frameworks; sourceTree = ""; @@ -2581,7 +2581,7 @@ D29DF0C321E404D4003B2FB9 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1010; + LastUpgradeCheck = 1320; ORGANIZATIONNAME = "Verizon Wireless"; TargetAttributes = { D29DF0CB21E404D4003B2FB9 = { @@ -3185,7 +3185,9 @@ D29DF0D221E404D4003B2FB9 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -3209,6 +3211,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -3221,7 +3224,6 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -3236,7 +3238,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -3251,7 +3253,9 @@ D29DF0D321E404D4003B2FB9 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; @@ -3275,6 +3279,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -3287,7 +3292,6 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -3296,7 +3300,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -3323,7 +3327,7 @@ FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../SharedFrameworks"; INFOPLIST_FILE = MVMCoreUI/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -3354,7 +3358,7 @@ FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/../SharedFrameworks"; INFOPLIST_FILE = MVMCoreUI/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/MVMCoreUI/Alerts/MVMCoreAlertHandler.m b/MVMCoreUI/Alerts/MVMCoreAlertHandler.m index 977e6293..75dab8f1 100644 --- a/MVMCoreUI/Alerts/MVMCoreAlertHandler.m +++ b/MVMCoreUI/Alerts/MVMCoreAlertHandler.m @@ -8,12 +8,12 @@ #import "MVMCoreAlertHandler.h" #import "MVMCoreAlertObject.h" -#import +@import MVMCore.MVMCoreAlertController; #import "MVMCoreAlertOperation.h" #import "MVMCoreTopAlertOperation.h" -#import -#import -#import +@import MVMCore.MVMCoreJSONConstants; +@import MVMCore.NSDictionary_MFConvenience; +@import MVMCore.NSArray_MFConvenience; #import @interface MVMCoreAlertHandler () diff --git a/MVMCoreUI/Alerts/MVMCoreAlertObject.h b/MVMCoreUI/Alerts/MVMCoreAlertObject.h index 87c5050a..03748c98 100644 --- a/MVMCoreUI/Alerts/MVMCoreAlertObject.h +++ b/MVMCoreUI/Alerts/MVMCoreAlertObject.h @@ -8,9 +8,9 @@ // An object for keeping track of all alert variables. Easier to pass around. #import -#import -#import -#import +@import MVMCore.MVMCoreActionDelegateProtocol; +@import MVMCore.MVMCoreLoadDelegateProtocol; +@import MVMCore.MVMCorePresentationDelegateProtocol; #import @class MVMCoreErrorObject; diff --git a/MVMCoreUI/Alerts/MVMCoreAlertObject.m b/MVMCoreUI/Alerts/MVMCoreAlertObject.m index 17b7f113..7c61dd08 100644 --- a/MVMCoreUI/Alerts/MVMCoreAlertObject.m +++ b/MVMCoreUI/Alerts/MVMCoreAlertObject.m @@ -9,16 +9,16 @@ #import "MVMCoreAlertObject.h" #import "MVMCoreAlertHandler.h" #import "MVMCoreTopAlertObject.h" -#import -#import -#import -#import -#import -#import -#import -#import -#import -#import +@import MVMCore.MVMCoreCache; +@import MVMCore.MVMCoreErrorConstants; +@import MVMCore.MVMCoreErrorObject; +@import MVMCore.MVMCoreLoadObject; +@import MVMCore.MVMCoreGetterUtility; +@import MVMCore.NSDictionary_MFConvenience; +@import MVMCore.MVMCoreHardcodedStringsConstants; +@import MVMCore.MVMCoreJSONConstants; +@import MVMCore.MVMCoreActionHandler; +@import MVMCore.Swift; #import @interface MVMCoreAlertObject () diff --git a/MVMCoreUI/Alerts/MVMCoreAlertOperation.h b/MVMCoreUI/Alerts/MVMCoreAlertOperation.h index a8031e5e..2347acd7 100644 --- a/MVMCoreUI/Alerts/MVMCoreAlertOperation.h +++ b/MVMCoreUI/Alerts/MVMCoreAlertOperation.h @@ -9,7 +9,7 @@ #import #import -#import +@import MVMCore.MVMCoreOperation; #import @interface MVMCoreAlertOperation : MVMCoreOperation diff --git a/MVMCoreUI/Alerts/MVMCoreAlertOperation.m b/MVMCoreUI/Alerts/MVMCoreAlertOperation.m index c96ebe57..b39a3267 100644 --- a/MVMCoreUI/Alerts/MVMCoreAlertOperation.m +++ b/MVMCoreUI/Alerts/MVMCoreAlertOperation.m @@ -8,8 +8,8 @@ #import "MVMCoreAlertOperation.h" #import -#import -#import +@import MVMCore.MVMCoreAlertController; +@import MVMCore.MVMCoreNavigationHandler; @interface MVMCoreAlertOperation () { __block BOOL _paused; diff --git a/MVMCoreUI/Atomic/Atoms/Selectors/RadioBoxes.swift b/MVMCoreUI/Atomic/Atoms/Selectors/RadioBoxes.swift index c0f001e7..ced00073 100644 --- a/MVMCoreUI/Atomic/Atoms/Selectors/RadioBoxes.swift +++ b/MVMCoreUI/Atomic/Atoms/Selectors/RadioBoxes.swift @@ -8,7 +8,7 @@ import Foundation -public protocol RadioBoxSelectionDelegate: class { +public protocol RadioBoxSelectionDelegate: AnyObject { func selected(radioBox: RadioBoxModel) } diff --git a/MVMCoreUI/Atomic/Extensions/UIPickerView+Extension.swift b/MVMCoreUI/Atomic/Extensions/UIPickerView+Extension.swift index aa933e05..5399bd8c 100644 --- a/MVMCoreUI/Atomic/Extensions/UIPickerView+Extension.swift +++ b/MVMCoreUI/Atomic/Extensions/UIPickerView+Extension.swift @@ -15,7 +15,6 @@ public extension UIPickerView { let picker = UIPickerView(frame: .zero) picker.backgroundColor = .mvmWhite - picker.showsSelectionIndicator = true return picker } diff --git a/MVMCoreUI/BaseClasses/TextField.swift b/MVMCoreUI/BaseClasses/TextField.swift index 9174426d..260491dd 100644 --- a/MVMCoreUI/BaseClasses/TextField.swift +++ b/MVMCoreUI/BaseClasses/TextField.swift @@ -8,7 +8,7 @@ import UIKit -public protocol TextInputDidDeleteProtocol: class { +public protocol TextInputDidDeleteProtocol: AnyObject { func textInputDidDelete() } diff --git a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m index e005763b..1ef5c232 100644 --- a/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m +++ b/MVMCoreUI/Containers/SplitViewController/MVMCoreUISplitViewController.m @@ -1069,7 +1069,7 @@ CGFloat const PanelAnimationDuration = 0.2; // Returns the desired view or falls back. Hot fix until we can get away from using these functions... + (CGRect)getBounds:(UIView *)desiredView { - UIView *view = desiredView ?: [MVMCoreNavigationHandler sharedNavigationHandler].navigationController.view ?: [UIApplication sharedApplication].keyWindow.rootViewController.view; + UIView *view = desiredView ?: [MVMCoreNavigationHandler sharedNavigationHandler].navigationController.view ?: [MVMCoreGetterUtility getKeyWindow].rootViewController.view; return view ? view.bounds : [UIScreen mainScreen].bounds; } @@ -1094,7 +1094,7 @@ CGFloat const PanelAnimationDuration = 0.2; } - (UIViewController *)getCurrentVisibleController { - UIViewController *baseViewController = [MVMCoreNavigationHandler sharedNavigationHandler].viewControllerToPresentOn ?: [UIApplication sharedApplication].keyWindow.rootViewController; + UIViewController *baseViewController = [MVMCoreNavigationHandler sharedNavigationHandler].viewControllerToPresentOn ?: [MVMCoreGetterUtility getKeyWindow].rootViewController; UIViewController *viewController = nil; while (baseViewController.presentedViewController && !baseViewController.presentedViewController.isBeingDismissed) { viewController = baseViewController.presentedViewController; diff --git a/MVMCoreUI/OtherHandlers/MVMCoreUIActionDelegateProtocol.h b/MVMCoreUI/OtherHandlers/MVMCoreUIActionDelegateProtocol.h index 5659db85..41533f34 100644 --- a/MVMCoreUI/OtherHandlers/MVMCoreUIActionDelegateProtocol.h +++ b/MVMCoreUI/OtherHandlers/MVMCoreUIActionDelegateProtocol.h @@ -5,7 +5,7 @@ // Created by Scott Pfeil on 10/28/20. // Copyright © 2020 Verizon Wireless. All rights reserved. // -#import +@import MVMCore.MVMCoreActionDelegateProtocol; @class MVMCoreAlertObject; @protocol MVMCoreUIActionDelegateProtocol diff --git a/MVMCoreUI/OtherHandlers/MVMCoreUIActionHandler.h b/MVMCoreUI/OtherHandlers/MVMCoreUIActionHandler.h index 4c1afd45..60a24646 100644 --- a/MVMCoreUI/OtherHandlers/MVMCoreUIActionHandler.h +++ b/MVMCoreUI/OtherHandlers/MVMCoreUIActionHandler.h @@ -6,7 +6,7 @@ // Copyright © 2020 Verizon Wireless. All rights reserved. // -#import +@import MVMCore.MVMCoreActionHandler; NS_ASSUME_NONNULL_BEGIN diff --git a/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.h b/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.h index 0f40b2a2..3a45a461 100644 --- a/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.h +++ b/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.h @@ -6,7 +6,7 @@ // Copyright © 2019 Verizon Wireless. All rights reserved. // -#import +@import MVMCore.MVMCoreViewControllerMappingObject; NS_ASSUME_NONNULL_BEGIN diff --git a/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.m b/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.m index 0ad51d4c..6fec6028 100644 --- a/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.m +++ b/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject.m @@ -7,7 +7,7 @@ // #import "MVMCoreUIViewControllerMappingObject.h" -#import +@import MVMCore.MVMCoreViewControllerProgrammaticMappingObject; #import @implementation MVMCoreUIViewControllerMappingObject diff --git a/MVMCoreUI/TopAlert/MVMCoreTopAlertObject.m b/MVMCoreUI/TopAlert/MVMCoreTopAlertObject.m index 141f4cf8..9286737a 100644 --- a/MVMCoreUI/TopAlert/MVMCoreTopAlertObject.m +++ b/MVMCoreUI/TopAlert/MVMCoreTopAlertObject.m @@ -7,9 +7,9 @@ // #import "MVMCoreTopAlertObject.h" -#import -#import -#import +@import MVMCore.NSDictionary_MFConvenience; +@import MVMCore.MVMCoreGetterUtility; +@import MVMCore.MVMCoreJSONConstants; #import "MVMCoreAlertHandler.h" NSUInteger const TopAlertDismissTime = 5; diff --git a/MVMCoreUI/TopAlert/MVMCoreTopAlertOperation.h b/MVMCoreUI/TopAlert/MVMCoreTopAlertOperation.h index af00d789..8a732932 100644 --- a/MVMCoreUI/TopAlert/MVMCoreTopAlertOperation.h +++ b/MVMCoreUI/TopAlert/MVMCoreTopAlertOperation.h @@ -6,7 +6,7 @@ // Copyright © 2016 Verizon Wireless. All rights reserved. // -#import +@import MVMCore.MVMCoreOperation; #import @class MVMCoreTopAlertObject; diff --git a/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.h b/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.h index f8c3d7f5..4fe50237 100644 --- a/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.h +++ b/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.h @@ -8,7 +8,7 @@ #import #import -#import +@import MVMCore.MVMCoreViewProtocol; @class Button; diff --git a/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.m b/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.m index 892a6e94..174b1bfb 100644 --- a/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.m +++ b/MVMCoreUI/TopAlert/MVMCoreUITopAlertBaseView.m @@ -7,13 +7,13 @@ // #import "MVMCoreUITopAlertBaseView.h" -#import +@import MVMCore.MVMCoreActionHandler; #import "MVMCoreUISplitViewController.h" -#import -#import +@import MVMCore.MVMCoreLoadObject; +@import MVMCore.MVMCoreRequestParameters; #import "MVMCoreUITopAlertView.h" -#import -#import +@import MVMCore.MVMCoreJSONConstants; +@import MVMCore.NSDictionary_MFConvenience; #import "UIColor+MFConvenience.h" #import "MVMCoreUICommonViewsUtility.h" #import "MFStyler.h" diff --git a/MVMCoreUI/TopAlert/MVMCoreUITopAlertExpandableView.m b/MVMCoreUI/TopAlert/MVMCoreUITopAlertExpandableView.m index 405dd781..0a548aea 100644 --- a/MVMCoreUI/TopAlert/MVMCoreUITopAlertExpandableView.m +++ b/MVMCoreUI/TopAlert/MVMCoreUITopAlertExpandableView.m @@ -9,11 +9,11 @@ #import "MVMCoreUITopAlertExpandableView.h" #import "MVMCoreUITopAlertShortView.h" #import "MVMCoreUITopAlertMainView.h" -#import +@import MVMCore.MVMCoreDispatchUtility; #import #import -#import -#import +@import MVMCore.MVMCoreBlockOperation; +@import MVMCore.MVMCoreNavigationHandler; #import "MFStyler.h" #import "NSLayoutConstraint+MFConvenience.h" #import "MVMCoreUIUtility.h" diff --git a/MVMCoreUI/TopAlert/MVMCoreUITopAlertMainView.m b/MVMCoreUI/TopAlert/MVMCoreUITopAlertMainView.m index d2a009c9..1a9131a6 100644 --- a/MVMCoreUI/TopAlert/MVMCoreUITopAlertMainView.m +++ b/MVMCoreUI/TopAlert/MVMCoreUITopAlertMainView.m @@ -9,13 +9,13 @@ #import "MVMCoreUITopAlertMainView.h" #import "MFStyler.h" #import "NSLayoutConstraint+MFConvenience.h" -#import -#import +@import MVMCore.NSDictionary_MFConvenience; +@import MVMCore.MVMCoreDispatchUtility; #import #import "UIColor+MFConvenience.h" #import #import -#import +@import MVMCore.MVMCoreJSONConstants; #import "MVMCoreUICommonViewsUtility.h" #import "MVMCoreUITopAlertView.h" #import diff --git a/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m b/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m index 8e276b72..c1e709df 100644 --- a/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m +++ b/MVMCoreUI/Utility/MVMCoreUICommonViewsUtility.m @@ -217,7 +217,6 @@ static const CGFloat VertialShadowOffset = 6; + (UIPickerView *)commonPickerView { UIPickerView *picker = [[UIPickerView alloc] initWithFrame:CGRectZero]; picker.backgroundColor = [UIColor whiteColor]; - picker.showsSelectionIndicator = YES; return picker; } diff --git a/MVMCoreUI/Utility/MVMCoreUIUtility.m b/MVMCoreUI/Utility/MVMCoreUIUtility.m index 01f576c5..887d7438 100644 --- a/MVMCoreUI/Utility/MVMCoreUIUtility.m +++ b/MVMCoreUI/Utility/MVMCoreUIUtility.m @@ -52,7 +52,7 @@ } + (UIViewController *)getCurrentVisibleController { - UIViewController *baseViewController = [MVMCoreNavigationHandler sharedNavigationHandler].viewControllerToPresentOn ?: [UIApplication sharedApplication].keyWindow.rootViewController; + UIViewController *baseViewController = [MVMCoreNavigationHandler sharedNavigationHandler].viewControllerToPresentOn ?: [MVMCoreGetterUtility getKeyWindow].rootViewController; UIViewController *viewController = nil; while (baseViewController.presentedViewController && !baseViewController.presentedViewController.isBeingDismissed) { viewController = baseViewController.presentedViewController; @@ -201,10 +201,10 @@ } + (CGFloat)getTopSpaceWithStatusBarForView:(UIView *)view { - CGPoint viewStartPointInWindowSpace = [[UIApplication sharedApplication].keyWindow convertPoint:CGPointMake(CGRectGetMinX(view.frame), CGRectGetMinY(view.frame)) fromView:[view superview]]; - if (CGRectGetMaxY([UIApplication sharedApplication].statusBarFrame) > viewStartPointInWindowSpace.y) { - - return CGRectGetMaxY([UIApplication sharedApplication].statusBarFrame) - viewStartPointInWindowSpace.y; + CGPoint viewStartPointInWindowSpace = [[MVMCoreGetterUtility getKeyWindow] convertPoint:CGPointMake(CGRectGetMinX(view.frame), CGRectGetMinY(view.frame)) fromView:[view superview]]; + CGFloat maxY = CGRectGetMaxY([[[[MVMCoreGetterUtility getKeyWindow] windowScene] statusBarManager] statusBarFrame]); + if (maxY > viewStartPointInWindowSpace.y) { + return maxY - viewStartPointInWindowSpace.y; } else { return 0; } @@ -277,7 +277,7 @@ CGRect keyboardRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; // Gets the scrollview end point in the window coordinate space to see if the keyboard will cover the scroll view at all. (This conversion allows the scrollview to be anyhwere in the hierarchy). - CGPoint scrollEndPointInWindowSpace = [[UIApplication sharedApplication].keyWindow convertPoint:CGPointMake(CGRectGetMinX(scrollView.frame), CGRectGetMaxY(scrollView.frame)) fromView:[scrollView superview]]; + CGPoint scrollEndPointInWindowSpace = [[MVMCoreGetterUtility getKeyWindow] convertPoint:CGPointMake(CGRectGetMinX(scrollView.frame), CGRectGetMaxY(scrollView.frame)) fromView:[scrollView superview]]; // Also takes into account the current content inset. (Even if the keyboard covers the frame, it might not matter if the bottom content inset is set to above the keyboard anyway). if (scrollEndPointInWindowSpace.y - scrollView.contentInset.bottom > CGRectGetMinY(keyboardRect)) { diff --git a/MVMCoreUI/Utility/Sizing/MFSizeObject.m b/MVMCoreUI/Utility/Sizing/MFSizeObject.m index 3379a1ce..f2ceb0f2 100644 --- a/MVMCoreUI/Utility/Sizing/MFSizeObject.m +++ b/MVMCoreUI/Utility/Sizing/MFSizeObject.m @@ -9,6 +9,7 @@ #import #import "MVMCoreUISplitViewController.h" @import MVMCore.MVMCoreGetterUtility; +@import MVMCore.Swift; CGFloat const MFSizeiPhone4HeightThreshold = 490; CGFloat const MFSizeiPhone5HeightThreshold = 578; @@ -145,7 +146,7 @@ CGFloat const MFSizeMostlySweetSpotThreshold = 750; - (CGFloat)getValueBasedOnScreenSize { CGRect screenFrame = [[UIScreen mainScreen] bounds]; if ([MVMCoreGetterUtility isOnIPad]) { - if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) { + if (UIInterfaceOrientationIsLandscape([[[MVMCoreGetterUtility getKeyWindow] windowScene] interfaceOrientation])) { return [self getValueBasedOnSize:CGRectGetWidth(screenFrame)]; } else { return [self getValueBasedOnSize:CGRectGetHeight(screenFrame)]; @@ -198,7 +199,7 @@ CGFloat const MFSizeMostlySweetSpotThreshold = 750; - (void)performBlockBaseOnScreenSize { CGRect screenFrame = [[UIScreen mainScreen] bounds]; if ([MVMCoreGetterUtility isOnIPad]) { - if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation)) { + if (UIInterfaceOrientationIsLandscape([[[MVMCoreGetterUtility getKeyWindow] windowScene] interfaceOrientation])) { [self performBlockBaseOnSize:CGRectGetWidth(screenFrame)]; } else { [self performBlockBaseOnSize:CGRectGetHeight(screenFrame)]; diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index e5b007ce..fbdcb352 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -2,32 +2,53 @@ unset TOOLCHAINS #Xcode 7.3 BUG FIX http://stackoverflow.com/questions/36184930/xcodebuild-7-3-cant-enable-bitcode -# define output folder environment variable +# define variables C_PROJECT_NAME="MVMCoreUI" PHONE_CONFIGURATION="Release" +BUILD_DIR=$(xcodebuild -showBuildSettings -project ./${C_PROJECT_NAME}.xcodeproj | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) +PHONE_ARCHIVE_PATH="${BUILD_DIR}/${PHONE_CONFIGURATION}-iphoneos/${C_PROJECT_NAME}.xcarchive" SIMULATOR_CONFIGURATION="Debug" -BUILD_DIR=$(xcodebuild -showBuildSettings -project ./MVMCoreUI.xcodeproj | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) -SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${SIMULATOR_CONFIGURATION}-iphonesimulator/${C_PROJECT_NAME}.framework" -FRAMEWORKS_DIR=$BUILD_DIR/../../../Frameworks/MVMCoreUI -UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/universal +SIMULATOR_ARCHIVE_PATH="${BUILD_DIR}/${SIMULATOR_CONFIGURATION}-iphonesimulator/${C_PROJECT_NAME}.xcarchive" +UNIVERSAL_OUTPUTFOLDER="${BUILD_DIR}/universal" -# Step 1. Build Device and Simulator versions -xcodebuild -scheme "${C_PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${PHONE_CONFIGURATION} -sdk iphoneos -archivePath "${BUILD_DIR}/${PHONE_CONFIGURATION}-iphoneos/${C_PROJECT_NAME}" archive SKIP_INSTALL=false FRAMEWORK_SEARCH_PATHS=$FRAMEWORKS_DIR ALWAYS_SEARCH_USER_PATHS=true - -xcodebuild -target "${C_PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${SIMULATOR_CONFIGURATION} -sdk iphonesimulator BUILD_DIR=$BUILD_DIR FRAMEWORK_SEARCH_PATHS=$FRAMEWORKS_DIR ALWAYS_SEARCH_USER_PATHS=true ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=true +# Update to use .xcframework +sed -i '' 's|MVMCore.framework.*isa.*;|MVMCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMCore.xcframework; path = ../SharedFrameworks/MVMCore.xcframework; sourceTree = "";|g' ./MVMCoreUI.xcodeproj/project.pbxproj +sed -i '' 's/MVMCore.framework/MVMCore.xcframework/g' ./MVMCoreUI.xcodeproj/project.pbxproj +# Build device archive +xcodebuild archive \ + -scheme "${C_PROJECT_NAME}" \ + -configuration ${PHONE_CONFIGURATION} \ + -archivePath "${PHONE_ARCHIVE_PATH}" \ + -sdk iphoneos \ + -destination 'generic/platform=iOS' \ + SKIP_INSTALL=NO \ + ONLY_ACTIVE_ARCH=NO \ + FRAMEWORK_SEARCH_PATHS=$FRAMEWORKS_DIR \ + ALWAYS_SEARCH_USER_PATHS=true + +# Build simulator archive +xcodebuild archive \ + -scheme "${C_PROJECT_NAME}" \ + -configuration ${SIMULATOR_CONFIGURATION} \ + -archivePath "${SIMULATOR_ARCHIVE_PATH}" \ + -sdk iphonesimulator \ + -destination 'generic/platform=iOS Simulator' \ + SKIP_INSTALL=NO \ + ONLY_ACTIVE_ARCH=NO \ + FRAMEWORK_SEARCH_PATHS=$FRAMEWORKS_DIR \ + ALWAYS_SEARCH_USER_PATHS=true + mkdir -p "${UNIVERSAL_OUTPUTFOLDER}" -rm -rf ${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}.framework -cp -R "${BUILD_DIR}/${PHONE_CONFIGURATION}-iphoneos/${C_PROJECT_NAME}.xcarchive/Products/Library/Frameworks/${C_PROJECT_NAME}.framework" ${UNIVERSAL_OUTPUTFOLDER} +# Remove any existing xc framework. +rm -rf ${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}.xcframework -# Step 2. Create universal binary file using lipo +# Create the xcframework in the universal output folder. +xcodebuild -create-xcframework \ + -framework "${PHONE_ARCHIVE_PATH}/Products/Library/Frameworks/${C_PROJECT_NAME}.framework" \ + -framework "${SIMULATOR_ARCHIVE_PATH}/Products/Library/Frameworks/${C_PROJECT_NAME}.framework" \ + -output ${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}.xcframework -lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}" "${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}.framework/${C_PROJECT_NAME}" "${SIMULATOR_LIBRARY_PATH}/${C_PROJECT_NAME}" - -mv ${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME} ${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}.framework/${C_PROJECT_NAME} - -# For Swift framework, Swiftmodule needs to be copied in the universal framework -if [ -d "${SIMULATOR_LIBRARY_PATH}/Modules/${C_PROJECT_NAME}.swiftmodule/" ]; then - cp -a "${SIMULATOR_LIBRARY_PATH}/Modules/${C_PROJECT_NAME}.swiftmodule/" "${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}.framework/Modules/${C_PROJECT_NAME}.swiftmodule/" -fi +# Copy the dSYM file as well. +ditto "${PHONE_ARCHIVE_PATH}/dSYMs/${C_PROJECT_NAME}.framework.dSYM" "${UNIVERSAL_OUTPUTFOLDER}/${C_PROJECT_NAME}.xcframework.dSYM" diff --git a/Scripts/download_dependencies.sh b/Scripts/download_dependencies.sh index 10d11351..5df810bc 100755 --- a/Scripts/download_dependencies.sh +++ b/Scripts/download_dependencies.sh @@ -18,6 +18,10 @@ if [ ! -d $FRAMEWORKS_DIR ]; then mkdir -p $FRAMEWORKS_DIR fi -./Scripts/download_framework.sh $ARTIFACTORY_URL "$FRAMEWORKS_DIR/MVMCore.framework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCore/1.0/MVMCore-1.0-Debug-SNAPSHOT.zip +./Scripts/download_framework.sh $ARTIFACTORY_URL "$FRAMEWORKS_DIR/MVMCore.xcframework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCore/3.0/MVMCore-3.0-Debug-SNAPSHOT.zip -./Scripts/download_framework.sh $ARTIFACTORY_URL "$FRAMEWORKS_DIR/MVMAnimationFramework.framework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMAnimationFramework.framework/1.9/MVMAnimationFramework.framework-1.9.zip +./Scripts/download_framework.sh $ARTIFACTORY_URL "$FRAMEWORKS_DIR/MVMAnimationFramework.framework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMAnimationFramework.framework/3.0/MVMAnimationFramework.framework-3.0.zip + +./Scripts/download_framework.sh $ARTIFACTORY_URL "$FRAMEWORKS_DIR/VDSColorTokens.xcframework" GVJV_VDS_Maven/%40vds-tokens/ios/VDSColorTokens.1.0.6.xcframework.zip + +./Scripts/download_framework.sh $ARTIFACTORY_URL "$FRAMEWORKS_DIR/VDSFormControlsTokens.xcframework" GVJV_VDS_Maven/@vds-tokens/ios/VDSFormControlsTokens.1.0.7.xcframework.zip diff --git a/Scripts/upload_core_ui_frameworks.sh b/Scripts/upload_core_ui_frameworks.sh index 4a16396c..5e70eb2f 100755 --- a/Scripts/upload_core_ui_frameworks.sh +++ b/Scripts/upload_core_ui_frameworks.sh @@ -7,7 +7,8 @@ # Copied from Hedden, Kyle Matthew on 3/2/18. # -FRAMEWORK_VERSION=$(cd .. && agvtool vers -terse) +BUILD_SETTINGS=$(xcodebuild -showBuildSettings -project ../MVMCoreUI/MVMCoreUI.xcodeproj) +FRAMEWORK_VERSION=$(echo "$BUILD_SETTINGS" | grep -w -o 'MARKETING_VERSION = .*' | cut -d\ -f3-) if [ $(git tag --list | grep "v${FRAMEWORK_VERSION}") ]; then echo This version tag has already been committed! Aborting! exit 1 @@ -20,5 +21,5 @@ if [ -z $ARTIFACTORY_URL ]; then fi # Upload -BUILD_DIR=$(xcodebuild -showBuildSettings -project ../MVMCoreUI.xcodeproj | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) +BUILD_DIR=$(echo "$BUILD_SETTINGS" | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) ./upload_framework.sh $ARTIFACTORY_URL "${BUILD_DIR}/universal/MVMCoreUI.framework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCoreUI/[VER]/MVMCoreUI-[VER]-Debug-SNAPSHOT From 60d8d10101d1ef0481f94475825ad6916544494e Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 16:16:23 -0400 Subject: [PATCH 06/14] Script fix --- Scripts/build_aggregate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index fbdcb352..645c7be7 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -12,7 +12,7 @@ SIMULATOR_ARCHIVE_PATH="${BUILD_DIR}/${SIMULATOR_CONFIGURATION}-iphonesimulator/ UNIVERSAL_OUTPUTFOLDER="${BUILD_DIR}/universal" # Update to use .xcframework -sed -i '' 's|MVMCore.framework.*isa.*;|MVMCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMCore.xcframework; path = ../SharedFrameworks/MVMCore.xcframework; sourceTree = "";|g' ./MVMCoreUI.xcodeproj/project.pbxproj +sed -i '' 's|MVMCore.framework \*\/ = {isa.*};|MVMCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMCore.xcframework; path = ../SharedFrameworks/MVMCore.xcframework; sourceTree = ""; };|g' ./MVMCoreUI.xcodeproj/project.pbxproj sed -i '' 's/MVMCore.framework/MVMCore.xcframework/g' ./MVMCoreUI.xcodeproj/project.pbxproj # Build device archive From ab28c9379eadb150b452d62f2e1242854af99775 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 16:24:39 -0400 Subject: [PATCH 07/14] revert --- .gitlab-ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8fe891d2..d475e062 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,6 +16,7 @@ download_artifacts: script: - ./Scripts/download_dependencies.sh only: + - branches - develop tags: - bash_shell @@ -30,6 +31,7 @@ build_project: script: - ./Scripts/build_aggregate.sh only: + - branches - develop tags: - xcode_12_2 @@ -39,6 +41,7 @@ deploy_snapshot: script: - cd Scripts && ./upload_core_ui_frameworks.sh only: + - branches - develop tags: - bash_shell From c062f04659b70ee50ad73d33e25e03dc4805fa5d Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 16:35:31 -0400 Subject: [PATCH 08/14] accidentally removed framework variable --- Scripts/build_aggregate.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index 645c7be7..2673d791 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -9,6 +9,7 @@ BUILD_DIR=$(xcodebuild -showBuildSettings -project ./${C_PROJECT_NAME}.xcodeproj PHONE_ARCHIVE_PATH="${BUILD_DIR}/${PHONE_CONFIGURATION}-iphoneos/${C_PROJECT_NAME}.xcarchive" SIMULATOR_CONFIGURATION="Debug" SIMULATOR_ARCHIVE_PATH="${BUILD_DIR}/${SIMULATOR_CONFIGURATION}-iphonesimulator/${C_PROJECT_NAME}.xcarchive" +FRAMEWORKS_DIR=$BUILD_DIR/../../../Frameworks/MVMCoreUI UNIVERSAL_OUTPUTFOLDER="${BUILD_DIR}/universal" # Update to use .xcframework From 1dfaf7f34885975826de9f970dcf6568ab5220a7 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 16:53:55 -0400 Subject: [PATCH 09/14] Force path for now. --- Scripts/build_aggregate.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index 2673d791..23a50d4b 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -15,6 +15,7 @@ UNIVERSAL_OUTPUTFOLDER="${BUILD_DIR}/universal" # Update to use .xcframework sed -i '' 's|MVMCore.framework \*\/ = {isa.*};|MVMCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMCore.xcframework; path = ../SharedFrameworks/MVMCore.xcframework; sourceTree = ""; };|g' ./MVMCoreUI.xcodeproj/project.pbxproj sed -i '' 's/MVMCore.framework/MVMCore.xcframework/g' ./MVMCoreUI.xcodeproj/project.pbxproj +sed -i '' "s/path = \.\.\/SharedFrameworks/path = ${FRAMEWORKS_DIR}/g" ./MVMCoreUI.xcodeproj/project.pbxproj # Build device archive xcodebuild archive \ From 3c33261cb3a46305027c50cd711e18b9d5b5a9e8 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 16:59:28 -0400 Subject: [PATCH 10/14] Fix to sed --- Scripts/build_aggregate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index 23a50d4b..634a4e07 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -15,7 +15,7 @@ UNIVERSAL_OUTPUTFOLDER="${BUILD_DIR}/universal" # Update to use .xcframework sed -i '' 's|MVMCore.framework \*\/ = {isa.*};|MVMCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMCore.xcframework; path = ../SharedFrameworks/MVMCore.xcframework; sourceTree = ""; };|g' ./MVMCoreUI.xcodeproj/project.pbxproj sed -i '' 's/MVMCore.framework/MVMCore.xcframework/g' ./MVMCoreUI.xcodeproj/project.pbxproj -sed -i '' "s/path = \.\.\/SharedFrameworks/path = ${FRAMEWORKS_DIR}/g" ./MVMCoreUI.xcodeproj/project.pbxproj +sed -i '' "s|path = \.\.\/SharedFrameworks|path = ${FRAMEWORKS_DIR}|g" ./MVMCoreUI.xcodeproj/project.pbxproj # Build device archive xcodebuild archive \ From 63bdb9e4bb5bf86bb4161132b20f9fa7ff045c5e Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 17:10:02 -0400 Subject: [PATCH 11/14] Upload fix --- Scripts/build_aggregate.sh | 4 ++-- Scripts/upload_core_ui_frameworks.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index 634a4e07..e72f1597 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -15,7 +15,7 @@ UNIVERSAL_OUTPUTFOLDER="${BUILD_DIR}/universal" # Update to use .xcframework sed -i '' 's|MVMCore.framework \*\/ = {isa.*};|MVMCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMCore.xcframework; path = ../SharedFrameworks/MVMCore.xcframework; sourceTree = ""; };|g' ./MVMCoreUI.xcodeproj/project.pbxproj sed -i '' 's/MVMCore.framework/MVMCore.xcframework/g' ./MVMCoreUI.xcodeproj/project.pbxproj -sed -i '' "s|path = \.\.\/SharedFrameworks|path = ${FRAMEWORKS_DIR}|g" ./MVMCoreUI.xcodeproj/project.pbxproj +#sed -i '' "s|path = \.\.\/SharedFrameworks|path = ${FRAMEWORKS_DIR}|g" ./MVMCoreUI.xcodeproj/project.pbxproj # Build device archive xcodebuild archive \ @@ -26,7 +26,7 @@ xcodebuild archive \ -destination 'generic/platform=iOS' \ SKIP_INSTALL=NO \ ONLY_ACTIVE_ARCH=NO \ - FRAMEWORK_SEARCH_PATHS=$FRAMEWORKS_DIR \ + FRAMEWORK_SEARCH_PATHS="$FRAMEWORKS_DIR" \ ALWAYS_SEARCH_USER_PATHS=true # Build simulator archive diff --git a/Scripts/upload_core_ui_frameworks.sh b/Scripts/upload_core_ui_frameworks.sh index 5e70eb2f..70337d5f 100755 --- a/Scripts/upload_core_ui_frameworks.sh +++ b/Scripts/upload_core_ui_frameworks.sh @@ -7,7 +7,7 @@ # Copied from Hedden, Kyle Matthew on 3/2/18. # -BUILD_SETTINGS=$(xcodebuild -showBuildSettings -project ../MVMCoreUI/MVMCoreUI.xcodeproj) +BUILD_SETTINGS=$(xcodebuild -showBuildSettings -project ../MVMCoreUI.xcodeproj) FRAMEWORK_VERSION=$(echo "$BUILD_SETTINGS" | grep -w -o 'MARKETING_VERSION = .*' | cut -d\ -f3-) if [ $(git tag --list | grep "v${FRAMEWORK_VERSION}") ]; then echo This version tag has already been committed! Aborting! From 51ee582f3ef0b810518bf830642e7c0fc603fbfa Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 17:13:08 -0400 Subject: [PATCH 12/14] add back --- Scripts/build_aggregate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index e72f1597..f51c8857 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -15,7 +15,7 @@ UNIVERSAL_OUTPUTFOLDER="${BUILD_DIR}/universal" # Update to use .xcframework sed -i '' 's|MVMCore.framework \*\/ = {isa.*};|MVMCore.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MVMCore.xcframework; path = ../SharedFrameworks/MVMCore.xcframework; sourceTree = ""; };|g' ./MVMCoreUI.xcodeproj/project.pbxproj sed -i '' 's/MVMCore.framework/MVMCore.xcframework/g' ./MVMCoreUI.xcodeproj/project.pbxproj -#sed -i '' "s|path = \.\.\/SharedFrameworks|path = ${FRAMEWORKS_DIR}|g" ./MVMCoreUI.xcodeproj/project.pbxproj +sed -i '' "s|path = \.\.\/SharedFrameworks|path = ${FRAMEWORKS_DIR}|g" ./MVMCoreUI.xcodeproj/project.pbxproj # Build device archive xcodebuild archive \ From c737533a40510181271c17787a60c8f7d686cec5 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 17:25:51 -0400 Subject: [PATCH 13/14] typo update --- Scripts/build_aggregate.sh | 2 ++ Scripts/upload_core_ui_frameworks.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Scripts/build_aggregate.sh b/Scripts/build_aggregate.sh index f51c8857..84c7f4fb 100755 --- a/Scripts/build_aggregate.sh +++ b/Scripts/build_aggregate.sh @@ -24,6 +24,7 @@ xcodebuild archive \ -archivePath "${PHONE_ARCHIVE_PATH}" \ -sdk iphoneos \ -destination 'generic/platform=iOS' \ + -quiet \ SKIP_INSTALL=NO \ ONLY_ACTIVE_ARCH=NO \ FRAMEWORK_SEARCH_PATHS="$FRAMEWORKS_DIR" \ @@ -36,6 +37,7 @@ xcodebuild archive \ -archivePath "${SIMULATOR_ARCHIVE_PATH}" \ -sdk iphonesimulator \ -destination 'generic/platform=iOS Simulator' \ + -quiet \ SKIP_INSTALL=NO \ ONLY_ACTIVE_ARCH=NO \ FRAMEWORK_SEARCH_PATHS=$FRAMEWORKS_DIR \ diff --git a/Scripts/upload_core_ui_frameworks.sh b/Scripts/upload_core_ui_frameworks.sh index 70337d5f..acdba191 100755 --- a/Scripts/upload_core_ui_frameworks.sh +++ b/Scripts/upload_core_ui_frameworks.sh @@ -22,4 +22,4 @@ fi # Upload BUILD_DIR=$(echo "$BUILD_SETTINGS" | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) -./upload_framework.sh $ARTIFACTORY_URL "${BUILD_DIR}/universal/MVMCoreUI.framework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCoreUI/[VER]/MVMCoreUI-[VER]-Debug-SNAPSHOT +./upload_framework.sh $ARTIFACTORY_URL "${BUILD_DIR}/universal/MVMCoreUI.xcframework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCoreUI/[VER]/MVMCoreUI-[VER]-Debug-SNAPSHOT From 82b5f4b637ef2096fa8f8e34e566985d0b57be2f Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Tue, 5 Jul 2022 17:34:15 -0400 Subject: [PATCH 14/14] pass the version to upload script --- Scripts/upload_core_ui_frameworks.sh | 2 +- Scripts/upload_framework.sh | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Scripts/upload_core_ui_frameworks.sh b/Scripts/upload_core_ui_frameworks.sh index acdba191..a8cf475b 100755 --- a/Scripts/upload_core_ui_frameworks.sh +++ b/Scripts/upload_core_ui_frameworks.sh @@ -22,4 +22,4 @@ fi # Upload BUILD_DIR=$(echo "$BUILD_SETTINGS" | grep -w -o 'BUILD_DIR = .*' | cut -d\ -f3-) -./upload_framework.sh $ARTIFACTORY_URL "${BUILD_DIR}/universal/MVMCoreUI.xcframework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCoreUI/[VER]/MVMCoreUI-[VER]-Debug-SNAPSHOT +./upload_framework.sh $ARTIFACTORY_URL "${BUILD_DIR}/universal/MVMCoreUI.xcframework" BPHV_MobileFirst_IOS/com/vzw/hss/myverizon/MVMCoreUI/[VER]/MVMCoreUI-[VER]-Debug-SNAPSHOT $FRAMEWORK_VERSION diff --git a/Scripts/upload_framework.sh b/Scripts/upload_framework.sh index 305a6585..8793960e 100755 --- a/Scripts/upload_framework.sh +++ b/Scripts/upload_framework.sh @@ -14,6 +14,7 @@ URL=$1 LOCALPATH=$2 REMOTEPATH=$3 +FRAMEWORKVER=$4 if [ -z $URL ]; then echo "The artifactory instance url must be specified as the first argument!" @@ -29,10 +30,6 @@ cat "${LOCALPATH}/Info.plist" LOCALBASE=$(basename "${LOCALPATH}") LOCALDIR=$(dirname "${LOCALPATH}") -# Grab the framework version from the bundled Info.plist. -FRAMEWORKVER=$(/usr/libexec/plistbuddy -c "Print :CFBundleShortVersionString" "${LOCALPATH}/Info.plist") -echo -e "\nFramework version: \t${FRAMEWORKVER}" - # Replace the [VER] placeholders with the found version. REMOTEPATH="${REMOTEPATH//\[VER\]/$FRAMEWORKVER}" echo -e "Resolved path: \t\t${REMOTEPATH}"