Skip to content

Commit 9c1b59d

Browse files
committed
Updating Swift Package Manager for modular distribution
1 parent 4f6c841 commit 9c1b59d

File tree

2 files changed

+223
-7
lines changed

2 files changed

+223
-7
lines changed

Package.swift

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:5.1
1+
// swift-tools-version:5.3
22
// The swift-tools-version declares the minimum version of Swift required to build this package.
33

44
import PackageDescription
@@ -8,15 +8,59 @@ let package = Package(
88
products: [
99
.library(
1010
name: "OneSignal",
11-
targets: ["OneSignal"]),
11+
targets: ["OneSignalWrapper"]),
12+
.library(
13+
name: "OneSignalExtension",
14+
targets: ["OneSignalExtensionWrapper"]),
1215
],
1316
targets: [
1417
.target(
15-
name: "OneSignal",
16-
dependencies: [],
17-
path: "iOS_SDK/OneSignalSDK/",
18-
sources: ["Source"],
19-
publicHeadersPath:"SwiftPM/Public/Headers"),
18+
name: "OneSignalWrapper",
19+
dependencies: [
20+
"OneSignal",
21+
"OneSignalExtension",
22+
"OneSignalOutcomes",
23+
"OneSignalCore"
24+
],
25+
path: "OneSignalWrapper"
26+
),
27+
.target(
28+
name: "OneSignalExtensionWrapper",
29+
dependencies: [
30+
"OneSignalExtension",
31+
"OneSignalOutcomes",
32+
"OneSignalCore"
33+
],
34+
path: "OneSignalExtensionWrapper"
35+
),
36+
.target(
37+
name: "OneSignalOutcomesWrapper",
38+
dependencies: [
39+
"OneSignalOutcomes",
40+
"OneSignalCore"
41+
],
42+
path: "OneSignalOutcomesWrapper"
43+
),
44+
.binaryTarget(
45+
name: "OneSignal",
46+
url: "https://github.com/OneSignal/OneSignal-iOS-SDK/releases/download/3.10.0/OneSignal.xcframework.zip",
47+
checksum: "40ec6a392a1aa22b49eed82f563ee395a7672a1cc64ed818f27dd12dcb12e390"
48+
),
49+
.binaryTarget(
50+
name: "OneSignalExtension",
51+
url: "https://github.com/OneSignal/OneSignal-iOS-SDK/releases/download/3.10.0/OneSignalExtension.xcframework.zip",
52+
checksum: "dae3cc4871ec80919fda2f7c4559f5b79eb55efe1f4bf1f8d41c7a0e7df20e7b"
53+
),
54+
.binaryTarget(
55+
name: "OneSignalOutcomes",
56+
url: "https://github.com/OneSignal/OneSignal-iOS-SDK/releases/download/3.10.0/OneSignalOutcomes.xcframework.zip",
57+
checksum: "569d2ba216a8d185cf2c6dc7fcda515956771dfa23aba322c4b9be8852faa03c"
58+
),
59+
.binaryTarget(
60+
name: "OneSignalCore",
61+
url: "https://github.com/OneSignal/OneSignal-iOS-SDK/releases/download/3.10.0/OneSignalCore.xcframework.zip",
62+
checksum: "21393874f707c9e508f6dfe0278821e212f5d4d1206a4c8f1a8c77f8b958a253"
63+
)
2064
]
2165
)
2266

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
#!/bin/bash
2+
set -e
3+
4+
WORKING_DIR=$(pwd)
5+
6+
## OneSignal Core ##
7+
FRAMEWORK_FOLDER_NAME="OneSignal_Core"
8+
9+
FRAMEWORK_NAME="OneSignalCore"
10+
11+
FRAMEWORK_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework"
12+
13+
FRAMEWORK_ZIP_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework.zip"
14+
15+
SIMULATOR_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/simulator.xcarchive"
16+
17+
IOS_DEVICE_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/iOS.xcarchive"
18+
19+
CATALYST_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/catalyst.xcarchive"
20+
21+
SWIFT_PACKAGE_DIRECTORY="${WORKING_DIR}/../.."
22+
23+
SWIFT_PACKAGE_PATH="${SWIFT_PACKAGE_DIRECTORY}/Package.swift"
24+
25+
# Remove the old Zipped XCFramework and create a new Zip
26+
echo "Removing old Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
27+
rm -rf "${FRAMEWORK_ZIP_PATH}"
28+
echo "Creating new Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
29+
ditto -c -k --sequesterRsrc --keepParent "${FRAMEWORK_PATH}" "${FRAMEWORK_ZIP_PATH}"
30+
31+
# Compute the checksum for the Zipped framework
32+
echo "Computing package checksum and updating Package.swift ${SWIFT_PACKAGE_PATH}"
33+
CHECKSUM=$(swift package compute-checksum "${FRAMEWORK_ZIP_PATH}")
34+
SWIFT_PM_CHECKSUM_LINE=" checksum: \"${CHECKSUM}\""
35+
36+
# Use sed to remove line 62 from the Swift.package and replace it with the new checksum
37+
sed -i '' "62s/.*/$SWIFT_PM_CHECKSUM_LINE/" "${SWIFT_PACKAGE_PATH}"
38+
#Ask for the new release version number to be placed in the package URL
39+
echo -e "\033[1mEnter the new SDK release version number\033[0m"
40+
read VERSION_NUMBER
41+
SWIFT_PM_URL_LINE=" url: \"https:\/\/github.com\/OneSignal\/OneSignal-iOS-SDK\/releases\/download\/${VERSION_NUMBER}\/OneSignalCore.xcframework.zip\","
42+
#Use sed to remove line 61 from the Swift.package and replace it with the new URL for the new release
43+
sed -i '' "61s/.*/$SWIFT_PM_URL_LINE/" "${SWIFT_PACKAGE_PATH}"
44+
#Open XCFramework folder to drag zip into new release
45+
open "${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}"
46+
47+
## OneSignal Outcomes ##
48+
FRAMEWORK_FOLDER_NAME="OneSignal_Outcomes"
49+
50+
FRAMEWORK_NAME="OneSignalOutcomes"
51+
52+
FRAMEWORK_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework"
53+
54+
FRAMEWORK_ZIP_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework.zip"
55+
56+
SIMULATOR_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/simulator.xcarchive"
57+
58+
IOS_DEVICE_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/iOS.xcarchive"
59+
60+
CATALYST_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/catalyst.xcarchive"
61+
62+
SWIFT_PACKAGE_DIRECTORY="${WORKING_DIR}/../.."
63+
64+
SWIFT_PACKAGE_PATH="${SWIFT_PACKAGE_DIRECTORY}/Package.swift"
65+
66+
# Remove the old Zipped XCFramework and create a new Zip
67+
echo "Removing old Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
68+
rm -rf "${FRAMEWORK_ZIP_PATH}"
69+
echo "Creating new Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
70+
ditto -c -k --sequesterRsrc --keepParent "${FRAMEWORK_PATH}" "${FRAMEWORK_ZIP_PATH}"
71+
72+
# Compute the checksum for the Zipped framework
73+
echo "Computing package checksum and updating Package.swift ${SWIFT_PACKAGE_PATH}"
74+
CHECKSUM=$(swift package compute-checksum "${FRAMEWORK_ZIP_PATH}")
75+
SWIFT_PM_CHECKSUM_LINE=" checksum: \"${CHECKSUM}\""
76+
77+
echo ${CHECKSUM}
78+
# Use sed to remove line 57 from the Swift.package and replace it with the new checksum
79+
sed -i '' "57s/.*/$SWIFT_PM_CHECKSUM_LINE/" "${SWIFT_PACKAGE_PATH}"
80+
#Ask for the new release version number to be placed in the package URL
81+
echo -e "\033[1mEnter the new SDK release version number\033[0m"
82+
read VERSION_NUMBER
83+
SWIFT_PM_URL_LINE=" url: \"https:\/\/github.com\/OneSignal\/OneSignal-iOS-SDK\/releases\/download\/${VERSION_NUMBER}\/OneSignalOutcomes.xcframework.zip\","
84+
#Use sed to remove line 56 from the Swift.package and replace it with the new URL for the new release
85+
sed -i '' "56s/.*/$SWIFT_PM_URL_LINE/" "${SWIFT_PACKAGE_PATH}"
86+
#Open XCFramework folder to drag zip into new release
87+
open "${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}"
88+
89+
## OneSignal Extension ##
90+
FRAMEWORK_FOLDER_NAME="OneSignal_Extension"
91+
92+
FRAMEWORK_NAME="OneSignalExtension"
93+
94+
FRAMEWORK_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework"
95+
96+
FRAMEWORK_ZIP_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework.zip"
97+
98+
SIMULATOR_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/simulator.xcarchive"
99+
100+
IOS_DEVICE_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/iOS.xcarchive"
101+
102+
CATALYST_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/catalyst.xcarchive"
103+
104+
SWIFT_PACKAGE_DIRECTORY="${WORKING_DIR}/../.."
105+
106+
SWIFT_PACKAGE_PATH="${SWIFT_PACKAGE_DIRECTORY}/Package.swift"
107+
108+
# Remove the old Zipped XCFramework and create a new Zip
109+
echo "Removing old Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
110+
rm -rf "${FRAMEWORK_ZIP_PATH}"
111+
echo "Creating new Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
112+
ditto -c -k --sequesterRsrc --keepParent "${FRAMEWORK_PATH}" "${FRAMEWORK_ZIP_PATH}"
113+
114+
# Compute the checksum for the Zipped framework
115+
echo "Computing package checksum and updating Package.swift ${SWIFT_PACKAGE_PATH}"
116+
CHECKSUM=$(swift package compute-checksum "${FRAMEWORK_ZIP_PATH}")
117+
SWIFT_PM_CHECKSUM_LINE=" checksum: \"${CHECKSUM}\""
118+
119+
echo ${CHECKSUM}
120+
# Use sed to remove line 52 from the Swift.package and replace it with the new checksum
121+
sed -i '' "52s/.*/$SWIFT_PM_CHECKSUM_LINE/" "${SWIFT_PACKAGE_PATH}"
122+
#Ask for the new release version number to be placed in the package URL
123+
echo -e "\033[1mEnter the new SDK release version number\033[0m"
124+
read VERSION_NUMBER
125+
SWIFT_PM_URL_LINE=" url: \"https:\/\/github.com\/OneSignal\/OneSignal-iOS-SDK\/releases\/download\/${VERSION_NUMBER}\/OneSignalExtension.xcframework.zip\","
126+
#Use sed to remove line 51 from the Swift.package and replace it with the new URL for the new release
127+
sed -i '' "51s/.*/$SWIFT_PM_URL_LINE/" "${SWIFT_PACKAGE_PATH}"
128+
#Open XCFramework folder to drag zip into new release
129+
open "${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}"
130+
131+
## OneSignal ##
132+
FRAMEWORK_FOLDER_NAME="OneSignal_XCFramework"
133+
134+
FRAMEWORK_NAME="OneSignal"
135+
136+
FRAMEWORK_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework"
137+
138+
FRAMEWORK_ZIP_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/${FRAMEWORK_NAME}.xcframework.zip"
139+
140+
SIMULATOR_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/simulator.xcarchive"
141+
142+
IOS_DEVICE_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/iOS.xcarchive"
143+
144+
CATALYST_ARCHIVE_PATH="${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}/catalyst.xcarchive"
145+
146+
SWIFT_PACKAGE_DIRECTORY="${WORKING_DIR}/../.."
147+
148+
SWIFT_PACKAGE_PATH="${SWIFT_PACKAGE_DIRECTORY}/Package.swift"
149+
150+
# Remove the old Zipped XCFramework and create a new Zip
151+
echo "Removing old Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
152+
rm -rf "${FRAMEWORK_ZIP_PATH}"
153+
echo "Creating new Zipped XCFramework ${FRAMEWORK_ZIP_PATH}"
154+
ditto -c -k --sequesterRsrc --keepParent "${FRAMEWORK_PATH}" "${FRAMEWORK_ZIP_PATH}"
155+
156+
# Compute the checksum for the Zipped framework
157+
echo "Computing package checksum and updating Package.swift ${SWIFT_PACKAGE_PATH}"
158+
CHECKSUM=$(swift package compute-checksum "${FRAMEWORK_ZIP_PATH}")
159+
SWIFT_PM_CHECKSUM_LINE=" checksum: \"${CHECKSUM}\""
160+
161+
echo ${CHECKSUM}
162+
# Use sed to remove line 47 from the Swift.package and replace it with the new checksum
163+
sed -i '' "47s/.*/$SWIFT_PM_CHECKSUM_LINE/" "${SWIFT_PACKAGE_PATH}"
164+
#Ask for the new release version number to be placed in the package URL
165+
echo -e "\033[1mEnter the new SDK release version number\033[0m"
166+
read VERSION_NUMBER
167+
SWIFT_PM_URL_LINE=" url: \"https:\/\/github.com\/OneSignal\/OneSignal-iOS-SDK\/releases\/download\/${VERSION_NUMBER}\/OneSignal.xcframework.zip\","
168+
#Use sed to remove line 46 from the Swift.package and replace it with the new URL for the new release
169+
sed -i '' "46s/.*/$SWIFT_PM_URL_LINE/" "${SWIFT_PACKAGE_PATH}"
170+
#Open XCFramework folder to drag zip into new release
171+
open "${WORKING_DIR}/${FRAMEWORK_FOLDER_NAME}"
172+

0 commit comments

Comments
 (0)