|
148 | 148 |
|
149 | 149 | XCFRAMEWORKS=() |
150 | 150 | if $BUILD_CATALYST; then |
151 | | - XCFRAMEWORKS+=( -framework "$DIST/intermediates/catalyst/$CONFIG_BUILD-maccatalyst/NativeScript.framework" |
152 | | - -debug-symbols "$DIST/intermediates/catalyst/$CONFIG_BUILD-maccatalyst/NativeScript.framework.dSYM" ) |
| 151 | + XCFRAMEWORKS+=( --framework "$DIST/intermediates/catalyst/$CONFIG_BUILD-maccatalyst/NativeScript.framework" |
| 152 | + --debug-symbols "$DIST/intermediates/catalyst/$CONFIG_BUILD-maccatalyst/NativeScript.framework.dSYM" ) |
153 | 153 | fi |
154 | 154 |
|
155 | 155 | if $BUILD_SIMULATOR; then |
156 | | - XCFRAMEWORKS+=( -framework "$DIST/intermediates/ios-sim/$CONFIG_BUILD-iphonesimulator/NativeScript.framework" |
157 | | - -debug-symbols "$DIST/intermediates/ios-sim/$CONFIG_BUILD-iphonesimulator/NativeScript.framework.dSYM" ) |
| 156 | + XCFRAMEWORKS+=( --framework "$DIST/intermediates/ios-sim/$CONFIG_BUILD-iphonesimulator/NativeScript.framework" |
| 157 | + --debug-symbols "$DIST/intermediates/ios-sim/$CONFIG_BUILD-iphonesimulator/NativeScript.framework.dSYM" ) |
158 | 158 | fi |
159 | 159 |
|
160 | 160 | if $BUILD_IPHONE; then |
161 | | - XCFRAMEWORKS+=( -framework "$DIST/intermediates/ios/$CONFIG_BUILD-iphoneos/NativeScript.framework" |
162 | | - -debug-symbols "$DIST/intermediates/ios/$CONFIG_BUILD-iphoneos/NativeScript.framework.dSYM" ) |
| 161 | + XCFRAMEWORKS+=( --framework "$DIST/intermediates/ios/$CONFIG_BUILD-iphoneos/NativeScript.framework" |
| 162 | + --debug-symbols "$DIST/intermediates/ios/$CONFIG_BUILD-iphoneos/NativeScript.framework.dSYM" ) |
163 | 163 | fi |
164 | 164 |
|
165 | 165 | if $BUILD_MACOS; then |
166 | | - XCFRAMEWORKS+=( -framework "$DIST/intermediates/macos/$CONFIG_BUILD/NativeScript.framework" |
167 | | - -debug-symbols "$DIST/intermediates/macos/$CONFIG_BUILD/NativeScript.framework.dSYM" ) |
| 166 | + XCFRAMEWORKS+=( --framework "$DIST/intermediates/macos/$CONFIG_BUILD/NativeScript.framework" |
| 167 | + --debug-symbols "$DIST/intermediates/macos/$CONFIG_BUILD/NativeScript.framework.dSYM" ) |
168 | 168 | fi |
169 | 169 |
|
170 | 170 | if $BUILD_VISION; then |
171 | | - XCFRAMEWORKS+=( -framework "$DIST/intermediates/visionos/$CONFIG_BUILD-xros/NativeScript.framework" |
172 | | - -debug-symbols "$DIST/intermediates/visionos/$CONFIG_BUILD-xros/NativeScript.framework.dSYM" ) |
| 171 | + XCFRAMEWORKS+=( --framework "$DIST/intermediates/visionos/$CONFIG_BUILD-xros/NativeScript.framework" |
| 172 | + --debug-symbols "$DIST/intermediates/visionos/$CONFIG_BUILD-xros/NativeScript.framework.dSYM" ) |
173 | 173 |
|
174 | | - XCFRAMEWORKS+=( -framework "$DIST/intermediates/visionos-sim/$CONFIG_BUILD-xros/NativeScript.framework" |
175 | | - -debug-symbols "$DIST/intermediates/visionos-sim/$CONFIG_BUILD-xros/NativeScript.framework.dSYM" ) |
| 174 | + XCFRAMEWORKS+=( --framework "$DIST/intermediates/visionos-sim/$CONFIG_BUILD-xros/NativeScript.framework" |
| 175 | + --debug-symbols "$DIST/intermediates/visionos-sim/$CONFIG_BUILD-xros/NativeScript.framework.dSYM" ) |
176 | 176 | fi |
177 | 177 |
|
178 | 178 | if [[ -n "${XCFRAMEWORKS[@]}" ]]; then |
179 | 179 |
|
180 | | -checkpoint "Creating NativeScript.xcframework" |
181 | | -OUTPUT_DIR="$DIST/NativeScript.xcframework" |
| 180 | +checkpoint "Creating the XCFramework (NativeScript.apple.node)" |
| 181 | + |
| 182 | +# This script used to output to "$DIST/NativeScript.xcframework". |
| 183 | +# |
| 184 | +# We now follow the react-native-node-api prebuilds standard, emitting an |
| 185 | +# XCFramework named "NativeScript.apple.node" into our |
| 186 | +# @nativescript/ios-node-api npm package. The reason we do not use .xcframework |
| 187 | +# as the file extension is that .node works better for other tooling like |
| 188 | +# Node.js. It turns out that Apple apps can link XCFrameworks just fine even if |
| 189 | +# the file extension is not .xcframework! |
| 190 | +# |
| 191 | +# The prebuilds standard is described here: |
| 192 | +# https://github.com/callstackincubator/react-native-node-api/blob/9b231c14459b62d7df33360f930a00343d8c46e6/docs/PREBUILDS.md |
| 193 | +OUTPUT_DIR="packages/ios/build/Release/NativeScript.apple.node" |
182 | 194 | rm -rf $OUTPUT_DIR |
183 | | -xcodebuild -create-xcframework ${XCFRAMEWORKS[@]} -output "$OUTPUT_DIR" |
| 195 | +deno run -A ./scripts/build_xcframework.mts --output "$OUTPUT_DIR" ${XCFRAMEWORKS[@]} |
184 | 196 |
|
185 | 197 | fi |
186 | 198 |
|
|
0 commit comments