diff --git a/iOS_SDK/OneSignalSDK/build_all_frameworks.sh b/iOS_SDK/OneSignalSDK/build_all_frameworks.sh index c9b7804ed..0b0673f06 100755 --- a/iOS_SDK/OneSignalSDK/build_all_frameworks.sh +++ b/iOS_SDK/OneSignalSDK/build_all_frameworks.sh @@ -3,69 +3,69 @@ set -e WORKING_DIR=$(pwd) -create_xcframework() { - FRAMEWORK_FOLDER_NAME=$1 +# create_xcframework() { +# FRAMEWORK_FOLDER_NAME=$1 - FRAMEWORK_NAME=$2 +# FRAMEWORK_NAME=$2 - FRAMEWORK_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework" +# FRAMEWORK_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework" - BUILD_SCHEME=$3 +# BUILD_SCHEME=$3 - SIMULATOR_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/simulator.xcarchive" +# SIMULATOR_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/simulator.xcarchive" - IOS_DEVICE_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/iOS.xcarchive" +# IOS_DEVICE_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/iOS.xcarchive" - CATALYST_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/catalyst.xcarchive" +# CATALYST_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/catalyst.xcarchive" - rm -rf "${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}" - echo "Deleted ${FRAMEWORK_FOLDER_NAME}" - mkdir "${FRAMEWORK_FOLDER_NAME}" - echo "Created ${FRAMEWORK_FOLDER_NAME}" - echo "Archiving ${FRAMEWORK_NAME}" +# rm -rf "${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}" +# echo "Deleted ${FRAMEWORK_FOLDER_NAME}" +# mkdir "${FRAMEWORK_FOLDER_NAME}" +# echo "Created ${FRAMEWORK_FOLDER_NAME}" +# echo "Archiving ${FRAMEWORK_NAME}" - xcodebuild -list +# xcodebuild -list - xcodebuild archive ONLY_ACTIVE_ARCH=NO -scheme ${BUILD_SCHEME} -destination="generic/platform=iOS Simulator" -archivePath "${SIMULATOR_ARCHIVE_PATH}" -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES +# xcodebuild archive ONLY_ACTIVE_ARCH=NO -scheme ${BUILD_SCHEME} -destination="generic/platform=iOS Simulator" -archivePath "${SIMULATOR_ARCHIVE_PATH}" -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES - xcodebuild archive -scheme ${BUILD_SCHEME} -destination="generic/platform=iOS" -archivePath "${IOS_DEVICE_ARCHIVE_PATH}" -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES +# xcodebuild archive -scheme ${BUILD_SCHEME} -destination="generic/platform=iOS" -archivePath "${IOS_DEVICE_ARCHIVE_PATH}" -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES - xcodebuild archive -scheme ${BUILD_SCHEME} -destination='generic/platform=macOS,variant=Mac Catalyst' -archivePath "${CATALYST_ARCHIVE_PATH}" SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES +# xcodebuild archive -scheme ${BUILD_SCHEME} -destination='generic/platform=macOS,variant=Mac Catalyst' -archivePath "${CATALYST_ARCHIVE_PATH}" SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES - xcodebuild -create-xcframework -framework ${SIMULATOR_ARCHIVE_PATH}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework -debug-symbols ${SIMULATOR_ARCHIVE_PATH}/dSYMs/${FRAMEWORK_NAME}.framework.dSYM -framework ${IOS_DEVICE_ARCHIVE_PATH}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework -debug-symbols ${IOS_DEVICE_ARCHIVE_PATH}/dSYMs/${FRAMEWORK_NAME}.framework.dSYM -framework ${CATALYST_ARCHIVE_PATH}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework -debug-symbols ${CATALYST_ARCHIVE_PATH}/dSYMs/${FRAMEWORK_NAME}.framework.dSYM -output "${FRAMEWORK_PATH}" - rm -rf "${SIMULATOR_ARCHIVE_PATH}" - rm -rf "${IOS_DEVICE_ARCHIVE_PATH}" - rm -rf "${CATALYST_ARCHIVE_PATH}" -} +# xcodebuild -create-xcframework -framework ${SIMULATOR_ARCHIVE_PATH}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework -debug-symbols ${SIMULATOR_ARCHIVE_PATH}/dSYMs/${FRAMEWORK_NAME}.framework.dSYM -framework ${IOS_DEVICE_ARCHIVE_PATH}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework -debug-symbols ${IOS_DEVICE_ARCHIVE_PATH}/dSYMs/${FRAMEWORK_NAME}.framework.dSYM -framework ${CATALYST_ARCHIVE_PATH}/Products/Library/Frameworks/${FRAMEWORK_NAME}.framework -debug-symbols ${CATALYST_ARCHIVE_PATH}/dSYMs/${FRAMEWORK_NAME}.framework.dSYM -output "${FRAMEWORK_PATH}" +# rm -rf "${SIMULATOR_ARCHIVE_PATH}" +# rm -rf "${IOS_DEVICE_ARCHIVE_PATH}" +# rm -rf "${CATALYST_ARCHIVE_PATH}" +# } -# BUILD ONESIGNAL CORE ## -create_xcframework "OneSignal_Core" "OneSignalCore" "OneSignalCore" +# # BUILD ONESIGNAL CORE ## +# create_xcframework "OneSignal_Core" "OneSignalCore" "OneSignalCore" -## BUILD ONESIGNAL CORE ## -create_xcframework "OneSignal_OSCore" "OneSignalOSCore" "OneSignalOSCore" +# ## BUILD ONESIGNAL CORE ## +# create_xcframework "OneSignal_OSCore" "OneSignalOSCore" "OneSignalOSCore" -## BUILD ONESIGNAL OUTCOMES ## -create_xcframework "OneSignal_Outcomes" "OneSignalOutcomes" "OneSignalOutcomes" +# ## BUILD ONESIGNAL OUTCOMES ## +# create_xcframework "OneSignal_Outcomes" "OneSignalOutcomes" "OneSignalOutcomes" -## BUILD ONESIGNAL EXTENSION ## -create_xcframework "OneSignal_Extension" "OneSignalExtension" "OneSignalExtension" +# ## BUILD ONESIGNAL EXTENSION ## +# create_xcframework "OneSignal_Extension" "OneSignalExtension" "OneSignalExtension" -## BUILD ONESIGNAL EXTENSION ## -create_xcframework "OneSignal_Notifications" "OneSignalNotifications" "OneSignalNotifications" +# ## BUILD ONESIGNAL EXTENSION ## +# create_xcframework "OneSignal_Notifications" "OneSignalNotifications" "OneSignalNotifications" -## BUILD ONESIGNAL USER ## -create_xcframework "OneSignal_User" "OneSignalUser" "OneSignalUser" +# ## BUILD ONESIGNAL USER ## +# create_xcframework "OneSignal_User" "OneSignalUser" "OneSignalUser" -## BUILD ONESIGNAL LIVE ACTIVITIES ## -create_xcframework "OneSignal_LiveActivities" "OneSignalLiveActivities" "OneSignalLiveActivities" +# ## BUILD ONESIGNAL LIVE ACTIVITIES ## +# create_xcframework "OneSignal_LiveActivities" "OneSignalLiveActivities" "OneSignalLiveActivities" -## BUILD ONESIGNAL USER ## -create_xcframework "OneSignal_Location" "OneSignalLocation" "OneSignalLocation" +# ## BUILD ONESIGNAL USER ## +# create_xcframework "OneSignal_Location" "OneSignalLocation" "OneSignalLocation" -## BUILD ONESIGNAL USER ## -create_xcframework "OneSignal_InAppMessages" "OneSignalInAppMessages" "OneSignalInAppMessages" +# ## BUILD ONESIGNAL USER ## +# create_xcframework "OneSignal_InAppMessages" "OneSignalInAppMessages" "OneSignalInAppMessages" -## BUILD ONESIGNAL ## -create_xcframework "OneSignal_XCFramework" "OneSignalFramework" "OneSignalFramework" +# ## BUILD ONESIGNAL ## +# create_xcframework "OneSignal_XCFramework" "OneSignalFramework" "OneSignalFramework" -open "${WORKING_DIR}" +# open "${WORKING_DIR}" diff --git a/iOS_SDK/OneSignalSDK/update_version.sh b/iOS_SDK/OneSignalSDK/update_version.sh new file mode 100644 index 000000000..401568789 --- /dev/null +++ b/iOS_SDK/OneSignalSDK/update_version.sh @@ -0,0 +1,80 @@ +#!/bin/bash +set -e + +# Script to update the SDK version across the codebase +# Updates: .podspec files and ONESIGNAL_VERSION +# Usage: ./update_version.sh + +if [ -z "$1" ]; then + echo "Error: Version number is required" + echo "Usage: ./update_version.sh " + exit 1 +fi + +VERSION=$1 + +WORKING_DIR=$(pwd) +REPO_ROOT="${WORKING_DIR}/../.." + +# Validate version format (supports X.Y.Z or X.Y.Z-suffix) +if ! [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.*)?$ ]]; then + echo "Error: Version must be in format X.Y.Z or X.Y.Z-suffix (e.g., 5.2.15 or 5.2.3-beta-01)" + exit 1 +fi + +# Convert semantic version to numeric version +# Examples: "5.2.15" -> "050215", "5.2.3-beta-01" -> "050203-beta-01" +convert_to_numeric() { + local version=$1 + local version_part="" + local suffix="" + + # Split by dash to separate version and suffix + if [[ $version == *"-"* ]]; then + version_part="${version%%-*}" + suffix="-${version#*-}" + else + version_part="$version" + fi + + # Split version by dots and pad each part to 2 digits + IFS='.' read -r major minor patch <<< "$version_part" + printf "%02d%02d%02d%s" "$major" "$minor" "$patch" "$suffix" +} + +VERSION_NUMERIC=$(convert_to_numeric "$VERSION") + +ONESIGNAL_PODSPEC="${REPO_ROOT}/OneSignal.podspec" +ONESIGNAL_XCFRAMEWORK_PODSPEC="${REPO_ROOT}/OneSignalXCFramework.podspec" +ONESIGNAL_COMMON_DEFINES="${WORKING_DIR}/OneSignalCore/Source/OneSignalCommonDefines.h" + +echo "Updating version to ${VERSION}..." + +# Update OneSignal.podspec +if [ -f "$ONESIGNAL_PODSPEC" ]; then + sed -i '' "s/s\.version[[:space:]]*=[[:space:]]*\"[^\"]*\"/s.version = \"${VERSION}\"/" "$ONESIGNAL_PODSPEC" + echo "✓ Updated OneSignal.podspec" +else + echo "Error: OneSignal.podspec not found at ${ONESIGNAL_PODSPEC}" + exit 1 +fi + +# Update OneSignalXCFramework.podspec +if [ -f "$ONESIGNAL_XCFRAMEWORK_PODSPEC" ]; then + sed -i '' "s/s\.version[[:space:]]*=[[:space:]]*\"[^\"]*\"/s.version = \"${VERSION}\"/" "$ONESIGNAL_XCFRAMEWORK_PODSPEC" + echo "✓ Updated OneSignalXCFramework.podspec" +else + echo "Error: OneSignalXCFramework.podspec not found at ${ONESIGNAL_XCFRAMEWORK_PODSPEC}" + exit 1 +fi + +# Update OneSignalCommonDefines.h +if [ -f "$ONESIGNAL_COMMON_DEFINES" ]; then + sed -i '' "s/^#define ONESIGNAL_VERSION[[:space:]]*@\"[^\"]*\"/#define ONESIGNAL_VERSION @\"${VERSION_NUMERIC}\"/" "$ONESIGNAL_COMMON_DEFINES" + echo "✓ Updated ONESIGNAL_VERSION in OneSignalCommonDefines.h to ${VERSION_NUMERIC}" +else + echo "Error: OneSignalCommonDefines.h not found at ${ONESIGNAL_COMMON_DEFINES}" + exit 1 +fi + +echo "Successfully updated version to ${VERSION} (numeric: ${VERSION_NUMERIC}) in all files"