mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-15 19:26:42 +08:00
feat: UIKit for Mac
* Bundle frameworks as `.xcframework` * Produce iOS and macOS specific `.dSYM`s
This commit is contained in:
@ -16,7 +16,7 @@ cd ios
|
||||
cd ..
|
||||
echo "Copy ios/TNSWidgets/build/*.framework dist/package/platforms/ios"
|
||||
|
||||
cp -R ios/TNSWidgets/build/TNSWidgets.framework dist/package/platforms/ios
|
||||
cp -R ios/TNSWidgets/build/TNSWidgets.xcframework dist/package/platforms/ios
|
||||
|
||||
cp ios/TNSWidgets/build/*.framework.dSYM.zip dist/package/platforms/ios
|
||||
|
||||
@ -28,7 +28,7 @@ fi
|
||||
|
||||
if [ "$SKIP_PACK" ]
|
||||
then
|
||||
echo "SKIP pack"
|
||||
echo "SKIP pack"
|
||||
else
|
||||
echo "Copy NPM artefacts"
|
||||
cp .npmignore LICENSE README.md package.json dist/package
|
||||
|
@ -3,19 +3,26 @@
|
||||
echo "Set exit on simple errors"
|
||||
set -e
|
||||
|
||||
OUTPUT_DIR="$PWD/TNSWidgets/build"
|
||||
rm -rf $OUTPUT_DIR"
|
||||
|
||||
echo "Build for iphonesimulator"
|
||||
xcodebuild -project TNSWidgets/TNSWidgets.xcodeproj -scheme TNSWidgets -sdk iphonesimulator -configuration Release clean build BUILD_DIR=$(PWD)/TNSWidgets/build -quiet
|
||||
xcodebuild -project TNSWidgets/TNSWidgets.xcodeproj -scheme TNSWidgets -sdk iphonesimulator -configuration Release clean build BUILD_DIR="$OUTPUT_DIR" -quiet
|
||||
|
||||
echo "Build for iphoneos"
|
||||
xcodebuild -project TNSWidgets/TNSWidgets.xcodeproj -scheme TNSWidgets -sdk iphoneos -configuration Release clean build BUILD_DIR=$(PWD)/TNSWidgets/build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -quiet
|
||||
xcodebuild -project TNSWidgets/TNSWidgets.xcodeproj -scheme TNSWidgets -sdk iphoneos -configuration Release clean build BUILD_DIR="$OUTPUT_DIR" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -quiet
|
||||
|
||||
function buildFatFramework() {
|
||||
echo "Build for uikitformac"
|
||||
xcodebuild -project TNSWidgets/TNSWidgets.xcodeproj -scheme TNSWidgets -destination 'variant=Mac Catalyst,arch=x86_64' -configuration Release clean build BUILD_DIR="$OUTPUT_DIR" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -quiet
|
||||
|
||||
function buildFatFramework_iOS() {
|
||||
set -e
|
||||
FRAMEWORK_NAME=$1
|
||||
RELATIVE_DIR=$2
|
||||
SRC_IPHONEOS=TNSWidgets/build/Release-iphoneos/$RELATIVE_DIR/$FRAMEWORK_NAME.framework
|
||||
SRC_SIMULATOR=TNSWidgets/build/Release-iphonesimulator/$RELATIVE_DIR/$FRAMEWORK_NAME.framework
|
||||
DEST=TNSWidgets/build/$FRAMEWORK_NAME.framework
|
||||
echo; echo "Build fat framework at $DEST"
|
||||
echo; echo "Build fat iOS framework at $DEST"
|
||||
rm -rf $DEST
|
||||
mkdir $DEST
|
||||
|
||||
@ -43,4 +50,44 @@ function buildFatFramework() {
|
||||
fi
|
||||
}
|
||||
|
||||
buildFatFramework TNSWidgets .
|
||||
function buildXCFramework() {
|
||||
set -e
|
||||
FRAMEWORK_NAME=$1
|
||||
RELATIVE_DIR=$2
|
||||
|
||||
SRC_IPHONEOS=TNSWidgets/build/Release-iphoneos/$RELATIVE_DIR/$FRAMEWORK_NAME.framework
|
||||
SRC_SIMULATOR=TNSWidgets/build/Release-iphonesimulator/$RELATIVE_DIR/$FRAMEWORK_NAME.framework
|
||||
SRC_MACOS=TNSWidgets/build/Release-uikitformac/$RELATIVE_DIR/$FRAMEWORK_NAME.framework
|
||||
OUTPUT_DIR=TNSWidgets/build
|
||||
XCFRAMEWORK_PATH=$OUTPUT_DIR/$FRAMEWORK_NAME.xcframework
|
||||
IOS_DSYM=$OUTPUT_DIR/$FRAMEWORK_NAME.ios.framework.dSYM
|
||||
MACOS_DSYM=$OUTPUT_DIR/$FRAMEWORK_NAME.macos.framework.dSYM
|
||||
|
||||
echo; echo "Building macOS/iOS xcframework at $XCFRAMEWORK_PATH"
|
||||
xcodebuild -create-xcframework -framework "$SRC_IPHONEOS" -framework "$SRC_SIMULATOR" -framework "$SRC_MACOS" -output "$XCFRAMEWORK_PATH"
|
||||
if [ -d $SRC_IPHONEOS.dSYM ]; then
|
||||
echo; echo "Building iOS dSYM at $IOS_DSYM"
|
||||
|
||||
cp -r $SRC_IPHONEOS.dSYM $IOS_DSYM
|
||||
rm "$IOS_DSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
|
||||
lipo -create -output "$IOS_DSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" \
|
||||
"$SRC_SIMULATOR.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME" \
|
||||
"$SRC_IPHONEOS.dSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME"
|
||||
file $IOS_DSYM/Contents/Resources/DWARF/$FRAMEWORK_NAME
|
||||
|
||||
echo "Archiving dSYM at $FRAMEWORK_NAME.ios.framework.dSYM"
|
||||
(cd $OUTPUT_DIR && zip -qr $FRAMEWORK_NAME.ios.framework.dSYM.zip $FRAMEWORK_NAME.ios.framework.dSYM)
|
||||
|
||||
|
||||
echo; echo "Copying macOS dSYM at $MACOS_DSYM"
|
||||
cp -r $SRC_MACOS.dSYM $MACOS_DSYM
|
||||
|
||||
echo "Archiving dSYM at $FRAMEWORK_NAME.macox.framework.dSYM"
|
||||
(cd $OUTPUT_DIR && zip -qr $FRAMEWORK_NAME.macos.framework.dSYM.zip $FRAMEWORK_NAME.macos.framework.dSYM)
|
||||
else
|
||||
echo "info: $SRC_IPHONEOS.dSYM doesn't exist. Skipping dSYM archives."
|
||||
fi
|
||||
}
|
||||
|
||||
buildXCFramework TNSWidgets .
|
||||
|
||||
|
Reference in New Issue
Block a user