-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathupdate_native_binaries.sh
More file actions
executable file
·108 lines (91 loc) · 5.04 KB
/
update_native_binaries.sh
File metadata and controls
executable file
·108 lines (91 loc) · 5.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/bash
set -e
### Usage
# iOS - Clone OneSignal-iOS-SDK first, see the code below
# Android - Run with the version you want to grab. Example:
# ./update_native_binaries.sh --android_native_version=5.1.37 --ios_native_version=5.2.14
WORKING_DIR=$(pwd)
IOS_SDK_PATH="${IOS_SDK_PATH:-../OneSignal-iOS-SDK}"
# Parse input params from terminal
for arg in "$@"; do
case $arg in
--android_native_version=*)
ANDROID_NATIVE_VERSION="${arg#*=}"
shift
;;
--ios_native_version=*)
IOS_NATIVE_VERSION="${arg#*=}"
shift
;;
-*)
echo "Unknown option: $arg" >&2
exit 1
;;
esac
done
move_ios_binary() {
FRAMEWORK_PATH=$1
cp -a "${FRAMEWORK_PATH}" "OneSignalSDK.DotNet.iOS.Binding"
}
# NOTE: Make sure to git clone and git checkout the version of the iOS SDK first
update_ios_binaries() {
echo "Updating iOS binaries to version ${IOS_NATIVE_VERSION}"
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalCore.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalExtension.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalFramework.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalNotifications.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalOSCore.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalOutcomes.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalUser.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalInAppMessages.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalLocation.xcframework/
rm -rf OneSignalSDK.DotNet.iOS.Binding/OneSignalLiveActivities.xcframework/
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_XCFramework/OneSignalFramework.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_Core/OneSignalCore.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_Extension/OneSignalExtension.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_Notifications/OneSignalNotifications.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_OSCore/OneSignalOSCore.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_Outcomes/OneSignalOutcomes.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_User/OneSignalUser.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_InAppMessages/OneSignalInAppMessages.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_Location/OneSignalLocation.xcframework"
move_ios_binary "${IOS_SDK_PATH}/iOS_SDK/OneSignalSDK/OneSignal_LiveActivities/OneSignalLiveActivities.xcframework"
}
update_android_binaries() {
echo "Updating Android binaries to version ${ANDROID_NATIVE_VERSION}"
curl https://repo1.maven.org/maven2/com/onesignal/core/${ANDROID_NATIVE_VERSION}/core-${ANDROID_NATIVE_VERSION}.aar \
--output OneSignalSDK.DotNet.Android.Core.Binding/Jars/core-release.aar \
--fail --retry 50 --retry-delay 60 --retry-all-errors
curl https://repo1.maven.org/maven2/com/onesignal/notifications/${ANDROID_NATIVE_VERSION}/notifications-${ANDROID_NATIVE_VERSION}.aar \
--output OneSignalSDK.DotNet.Android.Notifications.Binding/Jars/notifications-release.aar \
--fail --retry 50 --retry-delay 60 --retry-all-errors
curl https://repo1.maven.org/maven2/com/onesignal/location/${ANDROID_NATIVE_VERSION}/location-${ANDROID_NATIVE_VERSION}.aar \
--output OneSignalSDK.DotNet.Android.Location.Binding/Jars/location-release.aar \
--fail --retry 50 --retry-delay 60 --retry-all-errors
curl https://repo1.maven.org/maven2/com/onesignal/in-app-messages/${ANDROID_NATIVE_VERSION}/in-app-messages-${ANDROID_NATIVE_VERSION}.aar \
--output OneSignalSDK.DotNet.Android.InAppMessages.Binding/Jars/in-app-messages-release.aar \
--fail --retry 50 --retry-delay 60 --retry-all-errors
}
# Only update iOS if the version was provided
if [ -n "$IOS_NATIVE_VERSION" ]; then
update_ios_binaries
fi
# Only update Android if the version was provided
if [ -n "$ANDROID_NATIVE_VERSION" ]; then
update_android_binaries
fi
# Update versions.json with native SDK versions
update_versions_json() {
if [ -n "$ANDROID_NATIVE_VERSION" ] || [ -n "$IOS_NATIVE_VERSION" ]; then
CURRENT_ANDROID=$(grep '"android"' versions.json | sed -E 's/.*"android": *"([^"]+)".*/\1/')
CURRENT_IOS=$(grep '"ios"' versions.json | sed -E 's/.*"ios": *"([^"]+)".*/\1/')
FINAL_ANDROID="${ANDROID_NATIVE_VERSION:-$CURRENT_ANDROID}"
FINAL_IOS="${IOS_NATIVE_VERSION:-$CURRENT_IOS}"
printf '{\n "android": "%s",\n "ios": "%s"\n}\n' "$FINAL_ANDROID" "$FINAL_IOS" > versions.json
echo "✓ Updated versions.json"
fi
}
update_versions_json
echo "Cleaning build artifacts..."
# Clean build artifacts so stale cached binaries aren't used
find Samples \( -name bin -o -name obj \) -type d -prune -exec rm -rf {} + 2>/dev/null || true