|
1 | 1 | #!/bin/sh |
2 | 2 |
|
3 | | -# Fix libfido2.framework structure for macOS validation |
4 | | -# If this script is not run, the build will fail because xcodebuild is expecting the library in a specific structure |
5 | | -FRAMEWORK_PATH="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/Frameworks/libfido2.framework" |
| 3 | +set -e |
6 | 4 |
|
7 | | -if [ -d "$FRAMEWORK_PATH" ] && [ -f "$FRAMEWORK_PATH/Info.plist" ] && [ ! -d "$FRAMEWORK_PATH/Versions" ]; then |
| 5 | +FRAMEWORKS_DIR="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Contents/Frameworks" |
| 6 | +LIBFIDO_FRAMEWORK_PATH="${FRAMEWORKS_DIR}/libfido2.framework" |
| 7 | + |
| 8 | +if [ -d "$LIBFIDO_FRAMEWORK_PATH" ] && [ -f "$LIBFIDO_FRAMEWORK_PATH/Info.plist" ] && [ ! -d "$LIBFIDO_FRAMEWORK_PATH/Versions" ]; then |
8 | 9 | echo "Fixing libfido2.framework bundle structure..." |
9 | 10 |
|
10 | | - # Create proper bundle structure |
11 | | - mkdir -p "$FRAMEWORK_PATH/Versions/A/Resources" |
| 11 | + mkdir -p "$LIBFIDO_FRAMEWORK_PATH/Versions/A/Resources" |
12 | 12 |
|
13 | | - # Move files to proper locations |
14 | | - mv "$FRAMEWORK_PATH/Info.plist" "$FRAMEWORK_PATH/Versions/A/Resources/" |
15 | | - mv "$FRAMEWORK_PATH/libfido2" "$FRAMEWORK_PATH/Versions/A/" |
16 | | - if [ -f "$FRAMEWORK_PATH/LICENSE" ]; then |
17 | | - mv "$FRAMEWORK_PATH/LICENSE" "$FRAMEWORK_PATH/Versions/A/" |
| 13 | + mv "$LIBFIDO_FRAMEWORK_PATH/Info.plist" "$LIBFIDO_FRAMEWORK_PATH/Versions/A/Resources/" |
| 14 | + mv "$LIBFIDO_FRAMEWORK_PATH/libfido2" "$LIBFIDO_FRAMEWORK_PATH/Versions/A/" |
| 15 | + if [ -f "$LIBFIDO_FRAMEWORK_PATH/LICENSE" ]; then |
| 16 | + mv "$LIBFIDO_FRAMEWORK_PATH/LICENSE" "$LIBFIDO_FRAMEWORK_PATH/Versions/A/" |
18 | 17 | fi |
19 | 18 |
|
20 | | - # Create symbolic links |
21 | | - ln -sf A "$FRAMEWORK_PATH/Versions/Current" |
22 | | - ln -sf Versions/Current/libfido2 "$FRAMEWORK_PATH/libfido2" |
23 | | - ln -sf Versions/Current/Resources "$FRAMEWORK_PATH/Resources" |
24 | | - |
25 | | - echo "libfido2.framework structure fixed" |
| 19 | + ln -sf A "$LIBFIDO_FRAMEWORK_PATH/Versions/Current" |
| 20 | + ln -sf Versions/Current/libfido2 "$LIBFIDO_FRAMEWORK_PATH/libfido2" |
| 21 | + ln -sf Versions/Current/Resources "$LIBFIDO_FRAMEWORK_PATH/Resources" |
26 | 22 | fi |
| 23 | + |
| 24 | +SIGN_IDENTITY="${EXPANDED_CODE_SIGN_IDENTITY:--}" |
| 25 | +for item in \ |
| 26 | + "$BUILT_PRODUCTS_DIR/libcrypto.3.dylib" \ |
| 27 | + "$BUILT_PRODUCTS_DIR/libcbor.0.11.0.dylib" \ |
| 28 | + "$FRAMEWORKS_DIR/libcrypto.3.dylib" \ |
| 29 | + "$FRAMEWORKS_DIR/libcbor.0.11.0.dylib" \ |
| 30 | + "$LIBFIDO_FRAMEWORK_PATH"; do |
| 31 | + if [ -e "$item" ]; then |
| 32 | + codesign --force --sign "$SIGN_IDENTITY" "$item" |
| 33 | + fi |
| 34 | +done |
0 commit comments