From ce727d87a8072c0b9a1cb70c8a9186374e3702b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Mon, 11 Mar 2024 16:08:26 +0100 Subject: [PATCH] fix(ios) Xcode 15.2 updates - Update project files - Make sure CI uses Xcode 15.2 - Fix custom Xcode build scripts to depend on the Info.plist file generation - Combine 2 scripts related to Firebase into a single one --- .github/workflows/ci.yml | 7 ++++- ios/app/app.xcodeproj/project.pbxproj | 44 +++++++++++---------------- ios/sdk/sdk.xcodeproj/project.pbxproj | 6 ++-- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index adb5c41e44..656c0e27f7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,7 +65,7 @@ jobs: - run: npx react-native bundle --entry-file react/index.native.js --platform android --bundle-output /tmp/android.bundle --reset-cache ios-build: name: Build mobile bundle (iOS) - runs-on: macOS-latest + runs-on: macOS-13 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -73,6 +73,11 @@ jobs: node-version: 16 cache: 'npm' - run: npm install + - name: setup Xcode + run: | + xcode-select -p + sudo xcode-select -s /Applications/Xcode_15.2.app/Contents/Developer + xcodebuild -version - name: setup-cocoapods uses: maxim-lobanov/setup-cocoapods@v1 with: diff --git a/ios/app/app.xcodeproj/project.pbxproj b/ios/app/app.xcodeproj/project.pbxproj index 187e2bb0a4..b54c26a1ca 100644 --- a/ios/app/app.xcodeproj/project.pbxproj +++ b/ios/app/app.xcodeproj/project.pbxproj @@ -367,13 +367,12 @@ 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 0B26BE701EC5BC3C00EEFB41 /* Embed Frameworks */, - 0BB7DA181EC9E695007AAE98 /* Adjust ATS */, - DEF4813D224925A2002AD03A /* Copy Google Plist file */, - DE11877A21EE09640078D059 /* Setup Google reverse URL handler */, - DE4F6D6E22005C0400DE699E /* Setup Dropbox */, - 4E81688528A408E600F8FA9E /* Update App Entitlements */, 0BEA5C491F7B8F73000D0AB4 /* Embed Watch Content */, 4EC49B9025BED71300E76218 /* Embed App Extensions */, + 4E81688528A408E600F8FA9E /* Update App Entitlements */, + DE11877A21EE09640078D059 /* Setup Google reverse URL handler */, + 0BB7DA181EC9E695007AAE98 /* Adjust ATS */, + DE4F6D6E22005C0400DE699E /* Setup Dropbox */, ); buildRules = ( ); @@ -499,10 +498,12 @@ /* Begin PBXShellScriptBuildPhase section */ 0BB7DA181EC9E695007AAE98 /* Adjust ATS */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputPaths = ( + "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH", ); name = "Adjust ATS"; outputPaths = ( @@ -513,6 +514,7 @@ }; 0BBA83C41EC9F7600075A103 /* Run React packager */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); @@ -527,12 +529,14 @@ }; 4E81688528A408E600F8FA9E /* Update App Entitlements */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( + "$PROJECT_DIR/app.entitlements", ); name = "Update App Entitlements"; outputFileListPaths = ( @@ -567,12 +571,14 @@ }; DE11877A21EE09640078D059 /* Setup Google reverse URL handler */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( + "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH", ); name = "Setup Google reverse URL handler"; outputFileListPaths = ( @@ -581,16 +587,18 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "INFO_PLIST=\"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH\"\nGOOGLE_PLIST=\"$PROJECT_DIR/GoogleService-Info.plist\"\n\nif [[ -f $GOOGLE_PLIST ]]; then\n REVERSED_CLIENT_ID=$(/usr/libexec/PlistBuddy -c \"Print :REVERSED_CLIENT_ID:\" $GOOGLE_PLIST)\n /usr/libexec/PlistBuddy -c \"Set :CFBundleURLTypes:1:CFBundleURLSchemes:0 $REVERSED_CLIENT_ID\" $INFO_PLIST\nfi\n"; + shellScript = "GOOGLE_PLIST_NAME=\"GoogleService-Info.plist\"\nGOOGLE_PLIST=\"$PROJECT_DIR/$GOOGLE_PLIST_NAME\"\nBUILD_APP_DIR=\"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app\"\nINFO_PLIST=\"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH\"\n\nif [[ -f $GOOGLE_PLIST ]]; then\n cp $GOOGLE_PLIST \"$BUILD_APP_DIR/$GOOGLE_PLIST_NAME\"\n REVERSED_CLIENT_ID=$(/usr/libexec/PlistBuddy -c \"Print :REVERSED_CLIENT_ID:\" $GOOGLE_PLIST)\n /usr/libexec/PlistBuddy -c \"Set :CFBundleURLTypes:1:CFBundleURLSchemes:0 $REVERSED_CLIENT_ID\" $INFO_PLIST\nfi\n"; }; DE4F6D6E22005C0400DE699E /* Setup Dropbox */ = { isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( + "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH", ); name = "Setup Dropbox"; outputFileListPaths = ( @@ -601,24 +609,6 @@ shellPath = /bin/sh; shellScript = "INFO_PLIST=\"$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH\"\nDROPBOX_KEY_FILE=\"$PROJECT_DIR/dropbox.key\"\n\nif [[ -f $DROPBOX_KEY_FILE ]]; then\n /usr/libexec/PlistBuddy -c \"Delete :LSApplicationQueriesSchemes\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes array\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes:0 string 'dbapi-2'\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :LSApplicationQueriesSchemes:1 string 'dbapi-8-emm'\" $INFO_PLIST\n\n DROPBOX_KEY=$(head -n 1 $DROPBOX_KEY_FILE)\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLName string dropbox\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLSchemes array\" $INFO_PLIST\n /usr/libexec/PlistBuddy -c \"Add :CFBundleURLTypes:2:CFBundleURLSchemes:0 string $DROPBOX_KEY\" $INFO_PLIST\nfi\n"; }; - DEF4813D224925A2002AD03A /* Copy Google Plist file */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Copy Google Plist file"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "GOOGLE_PLIST_NAME=\"GoogleService-Info.plist\"\nGOOGLE_PLIST=\"$PROJECT_DIR/$GOOGLE_PLIST_NAME\"\nBUILD_APP_DIR=\"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app\"\n\nif [[ -f $GOOGLE_PLIST ]]; then\n cp $GOOGLE_PLIST \"$BUILD_APP_DIR/$GOOGLE_PLIST_NAME\"\nfi\n"; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -1031,7 +1021,8 @@ OTHER_CPLUSPLUSFLAGS = "$(inherited)"; OTHER_LDFLAGS = ( "$(inherited)", - " ", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -1094,7 +1085,8 @@ OTHER_CPLUSPLUSFLAGS = "$(inherited)"; OTHER_LDFLAGS = ( "$(inherited)", - " ", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; diff --git a/ios/sdk/sdk.xcodeproj/project.pbxproj b/ios/sdk/sdk.xcodeproj/project.pbxproj index 2039fd70f1..f312eecb92 100644 --- a/ios/sdk/sdk.xcodeproj/project.pbxproj +++ b/ios/sdk/sdk.xcodeproj/project.pbxproj @@ -781,7 +781,8 @@ OTHER_CPLUSPLUSFLAGS = "$(inherited)"; OTHER_LDFLAGS = ( "$(inherited)", - " ", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; @@ -847,7 +848,8 @@ OTHER_CPLUSPLUSFLAGS = "$(inherited)"; OTHER_LDFLAGS = ( "$(inherited)", - " ", + "-Wl", + "-ld_classic", ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos;