diff --git a/.circleci/config.yml b/.circleci/config.yml index 91b8593..0205b9b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -40,26 +40,15 @@ commands: paths: - vendor/bundle - # restore pods related caches - - restore_cache: - name: Restore CocoaPods Cache - keys: - - cocoapods-cache-v5-{{ arch }}-{{ .Branch }}-{{ checksum "Podfile.lock" }} - - cocoapods-cache-v5-{{ arch }}-{{ .Branch }} - - cocoapods-cache-v5 - # install CocoaPods - using default CocoaPods version, not the bundle - run: name: Repo Update & Install CocoaPods command: make ci-pod-install - # save pods related files - - save_cache: - name: Save CocoaPods Cache - key: cocoapods-cache-v5-{{ arch }}-{{ .Branch }}-{{ checksum "Podfile.lock" }} - paths: - - ./Pods - - ~/.cocoapods + - run: + name: Install xcodegen + command: brew install xcodegen + prestart_ios_simulator: steps: @@ -111,28 +100,30 @@ jobs: test-spm-podspec-archive: macos: - xcode: 15.1.0 # Specify the Xcode version to use + xcode: 15.0 # Specify the Xcode version to use steps: - checkout + - install_dependencies + # verify XCFramework archive builds - run: name: Build XCFramework command: | - if [ "${CIRCLE_BRANCH}" == "main" ]; then - make archive + if [ "${CIRCLE_BRANCH}" == "main" ] || [ "${CIRCLE_BRANCH}" == "staging" ]; then + make ci-archive fi # verify podspec is valid - - run: - name: Test Podspec - command: | - if [ "${CIRCLE_BRANCH}" == "main" ]; then - make test-podspec - fi + # - run: + # name: Test Podspec + # command: | + # if [ "${CIRCLE_BRANCH}" == "main" ]; then + # make test-podspec + # fi # verify SPM works - run: name: Test SPM command: | - if [ "${CIRCLE_BRANCH}" == "main" ]; then + if [ "${CIRCLE_BRANCH}" == "main" ] || [ "${CIRCLE_BRANCH}" == "staging" ]; then make test-SPM-integration fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7f2df6c..ca708a1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,12 +5,12 @@ on: workflow_dispatch: inputs: tag: - description: 'tag/version' + description: 'tag/version' required: true default: '5.0.0' action_tag: - description: 'create tag? ("no" to skip)' + description: 'create tag? ("no" to skip)' required: true default: 'yes' @@ -28,7 +28,7 @@ jobs: ref: main - uses: maxim-lobanov/setup-xcode@v1 with: - xcode-version: '15.0' + xcode-version: '15.0.1' - name: Install jq run: brew install jq diff --git a/Makefile b/Makefile index 02a0fcf..f70f2f6 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,11 @@ test: clean @echo "######################################################################" xcodebuild test -workspace $(PROJECT_NAME).xcworkspace -scheme $(PROJECT_NAME) -destination $(IOS_DESTINATION) -derivedDataPath build/out -resultBundlePath build/$(PROJECT_NAME).xcresult -enableCodeCoverage YES -archive: clean pod-install build +archive: pod-install _archive + +ci-archive: ci-pod-install _archive + +_archive: clean build xcodebuild -create-xcframework -framework $(SIMULATOR_ARCHIVE_PATH)$(EXTENSION_NAME).framework -debug-symbols $(SIMULATOR_ARCHIVE_DSYM_PATH)$(EXTENSION_NAME).framework.dSYM -framework $(IOS_ARCHIVE_PATH)$(EXTENSION_NAME).framework -debug-symbols $(IOS_ARCHIVE_DSYM_PATH)$(EXTENSION_NAME).framework.dSYM -output ./build/$(TARGET_NAME_XCFRAMEWORK) build: diff --git a/Package.swift b/Package.swift index c945b1e..157009b 100644 --- a/Package.swift +++ b/Package.swift @@ -25,7 +25,11 @@ let package = Package( ], targets: [ .target(name: "AEPCampaign", - dependencies: ["AEPCore", .product(name: "AEPServices", package: "AEPCore"), .product(name: "AEPIdentity", package: "AEPCore")], + dependencies: [ + .product(name: "AEPCore", package: "aepsdk-core-ios"), + .product(name: "AEPServices", package: "aepsdk-core-ios"), + .product(name: "AEPIdentity", package: "aepsdk-core-ios") + ], path: "AEPCampaign/Sources") ] ) diff --git a/Podfile b/Podfile index a01db60..f7a9523 100644 --- a/Podfile +++ b/Podfile @@ -8,31 +8,30 @@ pod 'SwiftLint', '0.52.0' # POD groups def campaign_core_dependencies - pod 'AEPCore', :git => 'https://github.com/adobe/aepsdk-core-ios.git', :branch => 'staging' - pod 'AEPServices', :git => 'https://github.com/adobe/aepsdk-core-ios.git', :branch => 'staging' - pod 'AEPRulesEngine', :git => 'https://github.com/adobe/aepsdk-rulesengine-ios.git', :branch => 'staging' - pod 'AEPIdentity', :git => 'https://github.com/adobe/aepsdk-core-ios.git', :branch => 'staging' + pod 'AEPCore' + pod 'AEPServices' + pod 'AEPIdentity' end def rulesengine - pod 'AEPRulesEngine', :git => 'https://github.com/adobe/aepsdk-rulesengine-ios.git', :branch => 'staging' + pod 'AEPRulesEngine' end -def assurance - pod 'AEPAssurance' +def assurance + pod 'AEPAssurance', :git => 'https://github.com/adobe/aepsdk-assurance-ios.git', :branch => 'staging' end def user_profile - pod 'AEPUserProfile', :git => 'https://github.com/adobe/aepsdk-userprofile-ios.git', :branch => 'dev-v5.0.0' + pod 'AEPUserProfile', :git => 'https://github.com/adobe/aepsdk-userprofile-ios.git', :branch => 'staging' end def places - pod 'AEPPlaces', :git => 'https://github.com/adobe/aepsdk-places-ios.git', :branch => 'dev-v5.0.0' + pod 'AEPPlaces' end def core_additional_dependecies - pod 'AEPLifecycle', :git => 'https://github.com/adobe/aepsdk-core-ios.git', :branch => 'staging' - pod 'AEPSignal', :git => 'https://github.com/adobe/aepsdk-core-ios.git', :branch => 'staging' + pod 'AEPLifecycle' + pod 'AEPSignal' end target 'AEPCampaign' do @@ -43,7 +42,7 @@ end target 'AEPCampaignUnitTests' do campaign_core_dependencies rulesengine - pod 'AEPTestUtils', :git => 'https://github.com/adobe/aepsdk-testutils-ios.git', :tag => 'v5.0.0-beta' + pod 'AEPTestUtils', :git => 'https://github.com/adobe/aepsdk-testutils-ios.git', :tag => '5.0.0' end target 'AEPCampaignFunctionalTests' do @@ -51,7 +50,7 @@ target 'AEPCampaignFunctionalTests' do rulesengine user_profile core_additional_dependecies - pod 'AEPTestUtils', :git => 'https://github.com/adobe/aepsdk-testutils-ios.git', :tag => 'v5.0.0-beta' + pod 'AEPTestUtils', :git => 'https://github.com/adobe/aepsdk-testutils-ios.git', :tag => '5.0.0' end target 'CampaignTester' do diff --git a/Podfile.lock b/Podfile.lock index cb59ab9..bd27a73 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -13,85 +13,50 @@ PODS: - AEPServices (5.0.0) - AEPSignal (5.0.0): - AEPCore (< 6.0.0, >= 5.0.0) - - AEPTestUtils (1.0.0-beta): - - AEPCore (>= 4.0.0) - - AEPServices (>= 4.0.0) + - AEPTestUtils (5.0.0): + - AEPCore + - AEPServices - AEPUserProfile (5.0.0): - AEPCore (< 6.0.0, >= 5.0.0) - SwiftLint (0.52.0) DEPENDENCIES: - - AEPCore (from `https://github.com/adobe/aepsdk-core-ios.git`, branch `staging`) - - AEPIdentity (from `https://github.com/adobe/aepsdk-core-ios.git`, branch `staging`) - - AEPLifecycle (from `https://github.com/adobe/aepsdk-core-ios.git`, branch `staging`) - - AEPPlaces (from `https://github.com/adobe/aepsdk-places-ios.git`, branch `dev-v5.0.0`) - - AEPRulesEngine (from `https://github.com/adobe/aepsdk-rulesengine-ios.git`, branch `staging`) - - AEPServices (from `https://github.com/adobe/aepsdk-core-ios.git`, branch `staging`) - - AEPSignal (from `https://github.com/adobe/aepsdk-core-ios.git`, branch `staging`) - - AEPTestUtils (from `https://github.com/adobe/aepsdk-testutils-ios.git`, tag `v5.0.0-beta`) - - AEPUserProfile (from `https://github.com/adobe/aepsdk-userprofile-ios.git`, branch `dev-v5.0.0`) + - AEPCore + - AEPIdentity + - AEPLifecycle + - AEPPlaces + - AEPRulesEngine + - AEPServices + - AEPSignal + - AEPTestUtils (from `https://github.com/adobe/aepsdk-testutils-ios.git`, tag `5.0.0`) + - AEPUserProfile (from `https://github.com/adobe/aepsdk-userprofile-ios.git`, branch `staging`) - SwiftLint (= 0.52.0) SPEC REPOS: trunk: + - AEPCore + - AEPIdentity + - AEPLifecycle + - AEPPlaces + - AEPRulesEngine + - AEPServices + - AEPSignal - SwiftLint EXTERNAL SOURCES: - AEPCore: - :branch: staging - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPIdentity: - :branch: staging - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPLifecycle: - :branch: staging - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPPlaces: - :branch: dev-v5.0.0 - :git: https://github.com/adobe/aepsdk-places-ios.git - AEPRulesEngine: - :branch: staging - :git: https://github.com/adobe/aepsdk-rulesengine-ios.git - AEPServices: - :branch: staging - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPSignal: - :branch: staging - :git: https://github.com/adobe/aepsdk-core-ios.git AEPTestUtils: :git: https://github.com/adobe/aepsdk-testutils-ios.git - :tag: v5.0.0-beta + :tag: 5.0.0 AEPUserProfile: - :branch: dev-v5.0.0 + :branch: staging :git: https://github.com/adobe/aepsdk-userprofile-ios.git CHECKOUT OPTIONS: - AEPCore: - :commit: f44b7b0d66e2c6a1454b51ed5a9d835bfbc2a8f9 - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPIdentity: - :commit: f44b7b0d66e2c6a1454b51ed5a9d835bfbc2a8f9 - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPLifecycle: - :commit: f44b7b0d66e2c6a1454b51ed5a9d835bfbc2a8f9 - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPPlaces: - :commit: fdfe3cc43baab9ce5e38ccbac2422fdd8fa4e4ba - :git: https://github.com/adobe/aepsdk-places-ios.git - AEPRulesEngine: - :commit: 7750ad5041c23c76053713441546116738e0fdcb - :git: https://github.com/adobe/aepsdk-rulesengine-ios.git - AEPServices: - :commit: f44b7b0d66e2c6a1454b51ed5a9d835bfbc2a8f9 - :git: https://github.com/adobe/aepsdk-core-ios.git - AEPSignal: - :commit: f44b7b0d66e2c6a1454b51ed5a9d835bfbc2a8f9 - :git: https://github.com/adobe/aepsdk-core-ios.git AEPTestUtils: :git: https://github.com/adobe/aepsdk-testutils-ios.git - :tag: v5.0.0-beta + :tag: 5.0.0 AEPUserProfile: - :commit: 142bb55104adc750b382bdc06cebb6945325f835 + :commit: cc628ea0ed9caa80fa0956cd579989f4b9d825a5 :git: https://github.com/adobe/aepsdk-userprofile-ios.git SPEC CHECKSUMS: @@ -102,10 +67,10 @@ SPEC CHECKSUMS: AEPRulesEngine: fe5800653a4bee07b1e41e61b4d5551f0dba557b AEPServices: e42e5118128e81c0f797fdfb1dc9c4a714d644b8 AEPSignal: b146a3d4e5af51ff588f4f1ffbd40f1541325143 - AEPTestUtils: 756e5997318be74584057d7628941c737d358640 + AEPTestUtils: 20495b368da57904ca2e9f241d1d8b114f9887b5 AEPUserProfile: cf36305d683d993d528337a46b7a269029b63e5d SwiftLint: 13280e21cdda6786ad908dc6e416afe5acd1fcb7 -PODFILE CHECKSUM: 4718fb2de6eb29ba7247aa378b5a28a29580a8fa +PODFILE CHECKSUM: f9c7fdbc6cd8c3f361522cbe077b6a1c706ac5d9 -COCOAPODS: 1.15.0 +COCOAPODS: 1.14.3 diff --git a/README.md b/README.md index ae362f3..919c6f1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Cocoapods](https://img.shields.io/github/v/release/adobe/aepsdk-campaign-ios?color=orange&label=CocoaPods&logo=apple&logoColor=white&sort=semver)](https://cocoapods.org/pods/AEPCampaign) [![SPM](https://img.shields.io/github/v/release/adobe/aepsdk-campaign-ios?color=orange&label=SPM&logo=apple&logoColor=white&sort=semver)](https://github.com/adobe/aepsdk-campaign-ios/releases) [![CircleCI](https://img.shields.io/circleci/project/github/adobe/aepsdk-campaign-ios/main.svg?logo=circleci&label=Build)](https://circleci.com/gh/adobe/workflows/aepsdk-campaign-ios) -[![Code Coverage](https://img.shields.io/codecov/c/github/adobe/aepsdk-campaign-ios/main.svg?logo=codecov&label=Coverage)](https://codecov.io/gh/adobe/aepsdk-campaign-ios/branch/main) + ## About this project diff --git a/Script/test-SPM.sh b/Script/test-SPM.sh index 3c4250d..9d23730 100644 --- a/Script/test-SPM.sh +++ b/Script/test-SPM.sh @@ -29,7 +29,7 @@ let package = Package( ) ], dependencies: [ - .package(name: \"AEPCore\", url: \"https://github.com/adobe/aepsdk-core-ios.git\", .upToNextMajor(from:\"5.0.0\")), + .package(name: \"AEPCore\", url: \"https://github.com/adobe/aepsdk-core-ios.git\", .branch(\"main\")), .package(name: \"AEPCampaign\", path: \"../\"), ], targets: [ @@ -48,10 +48,11 @@ let package = Package( " >Package.swift swift package update +swift package resolve -# This is a workaround for SPM issue https://github.com/apple/swift-package-manager/issues/5767 -swift package dump-pif > /dev/null || true -xcodebuild clean -scheme TestProject -destination 'generic/platform=iOS' > /dev/null || true +# This is necessary to avoid internal PIF error +swift package dump-pif > /dev/null +(xcodebuild clean -scheme TestProject -destination 'generic/platform=iOS' > /dev/null) || : # Archive for generic iOS device echo '############# Archive for generic iOS device ###############'