react-native-maps: EAS IOS builds getting fail

Summary

After upgraded to SDK47 and EAS, my IOS builds getting fail. image

Run fastlane section last logs:

› Compiling build Pods/react-native-google-maps » react-native-google-maps-dummy.m
› Compiling react-native-maps Pods/react-native-google-maps » RCTConvert+GMSMapViewType.m
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapWMSTileManager.m
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapWMSTile.m
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapUrlTile.m
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapURLTileManager.m
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapPolylineManager.m

❌  (node_modules/react-native-maps/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m:17:9)

  15 | #import <React/RCTViewManager.h>
  16 | #import <React/UIView+React.h>
> 17 | #import "RCTConvert+AirMap.h"
     |         ^ 'RCTConvert+AirMap.h' file not found
  18 | #import "AIRGoogleMapPolyline.h"
  19 | 
  20 | @interface AIRGoogleMapPolylineManager()
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapPolyline.m
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapPolygonManager.m
    Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-Codegen' from project 'Pods')
    Run script build phase 'Start Packager' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'Tilleli' from project 'Tilleli')
    Run script build phase 'Bundle React Native code and images' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'Tilleli' from project 'Tilleli')
    Run script build phase '[CP-User] Generate app.config for prebuilt Constants.manifest' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'EXConstants' from project 'Pods')
    Run script build phase '[CP-User] Generate app.manifest for expo-updates' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'EXUpdates' from project 'Pods')
    Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this warning, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'RCT-Folly' from project 'Pods')
▸ ** ARCHIVE FAILED **
▸ The following build commands failed:
▸ 	CompileC /Users/expo/Library/Developer/Xcode/DerivedData/Tilleli-fzmqitxhjmwestgpefzrhsophzqr/Build/Intermediates.noindex/ArchiveIntermediates/Tilleli/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/react-native-google-maps.build/Objects-normal/arm64/AIRGoogleMapPolylineManager.o /Users/expo/workingdir/build/node_modules/react-native-maps/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'react-native-google-maps' from project 'Pods')
▸ (1 failure)
** ARCHIVE FAILED **
The following build commands failed:
	CompileC /Users/expo/Library/Developer/Xcode/DerivedData/Tilleli-fzmqitxhjmwestgpefzrhsophzqr/Build/Intermediates.noindex/ArchiveIntermediates/Tilleli/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/react-native-google-maps.build/Objects-normal/arm64/AIRGoogleMapPolylineManager.o /Users/expo/workingdir/build/node_modules/react-native-maps/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'react-native-google-maps' from project 'Pods')
(1 failure)
Exit status: 65
+-------------+-------------------------+
|           Build environment           |
+-------------+-------------------------+
| xcode_path  | /Applications/Xcode.app |
| gym_version | 2.210.0                 |
| sdk         | iPhoneOS16.0.sdk        |
+-------------+-------------------------+
Looks like fastlane ran into a build/archive error with your project
It's hard to tell what's causing the error, so we wrote some guides on how
to troubleshoot build and signing issues: https://docs.fastlane.tools/codesigning/getting-started/
Before submitting an issue on GitHub, please follow the guide above and make
sure your project is set up correctly.
fastlane uses `xcodebuild` commands to generate your binary, you can see the
the full commands printed out in yellow in the above log.
Make sure to inspect the output above, as usually you'll find more error information there
[stderr] [!] Error building the application - see the log above
Error: Fastlane build failed with unknown error. See logs for the "Run fastlane" and "Xcode Logs" phases for more information.
Fastlane errors in most cases are not printed at the end of the output, so you may not find any useful information in the last lines of output when looking for an error message.

Reproducible sample code

I’m currently using firebase js package and expo-firebase-analytics with "expo-build-properties" plugins. image

Steps to reproduce

I found https://forums.expo.dev/t/eas-build-fails-sdk-47-ios-file-not-found-in-react-native-maps/67908 and this discussion https://github.com/react-native-maps/react-native-maps/discussions/4389

Can you please give me a solution?

Expected result

Should build the app

Actual result

Can’t build.

React Native Maps Version

1.3.2

What platforms are you seeing the problem on?

iOS (Google Maps)

React Native Version

0.70.5

What version of Expo are you using?

SDK 47

Device(s)

IOS

Additional information

No response

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 25
  • Comments: 56 (2 by maintainers)

Most upvoted comments

Try this, It will resolve the build issue.

// react-native-maps-plugin.js
const fs = require("fs");
const path = require("path");
const generateCode = require("@expo/config-plugins/build/utils/generateCode");
const configPlugins = require("@expo/config-plugins");

const code = `# Note you don't need to add RNBootSplash or react-native-app-auth if unused
$static_library = [
 'React',
 'Google-Maps-iOS-Utils',
 'GoogleMaps',
 'react-native-maps',
 'react-native-google-maps',
 'React-hermes'
]

pre_install do |installer|
    Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
    installer.pod_targets.each do |pod|
      bt = pod.send(:build_type)
      if $static_library.include?(pod.name)
        puts "Overriding the build_type to static_library from static_framework for #{pod.name}"
        def pod.build_type;
          Pod::BuildType.static_library
        end
      end
    end
    installer.pod_targets.each do |pod|
      bt = pod.send(:build_type)
      puts "#{pod.name} (#{bt})"
      puts "  linkage: #{bt.send(:linkage)} packaging: #{bt.send(:packaging)}"
    end
end`;

module.exports = (expoConfig) => {
  return configPlugins.withDangerousMod(expoConfig, [
    "ios",
    async (config) => {
      const filePath = path.join(
        config.modRequest.platformProjectRoot,
        "Podfile"
      );
      const contents = fs.readFileSync(filePath, "utf-8");

      const addCode = generateCode.mergeContents({
        tag: "withReactNativeFirebase",
        src: contents,
        newSrc: code,
        anchor: /\s*get_default_flags\(\)/i,
        offset: 2,
        comment: "#",
      });

      if (!addCode.didMerge) {
        console.error(
          "ERROR: Cannot add withReactNativeMaps to the project's ios/Podfile because it's malformed."
        );
        return config;
      }

      fs.writeFileSync(filePath, addCode.contents);

      return config;
    },
  ]);
};
// app.json
"plugins": [
      "./react-native-maps-plugin",
    ],

I am also facing similar issue Expo SDK 47 (managed)

The following build commands failed: CompileC /Users/expo/Library/Developer/Xcode/DerivedData/HomListi-ccxodtjizzeesdethgbxbudycanm/Build/Intermediates.noindex/ArchiveIntermediates/HomListi/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/react-native-google-maps.build/Objects-normal/arm64/AIRGoogleMapPolylineManager.o /Users/expo/workingdir/build/node_modules/react-native-maps/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'react-native-google-maps' from project 'Pods')

Im seeing a similar issue on a managed expo project

The following build commands failed: ▸ CompileC /Users/expo/Library/Developer/Xcode/DerivedData/GetSocial-gunewgppnxpjpodndnjbtrrkamkp/Build/Intermediates.noindex/ArchiveIntermediates/GetSocial/IntermediateBuildFilesPath/Pods.build/Release-iphoneos/react-native-google-maps.build/Objects-normal/arm64/AIRGoogleMapPolylineManager.o /Users/expo/workingdir/build/react_app/node_modules/react-native-maps/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'react-native-google-maps' from project 'Pods')

Same issue here, on an Expo managed project with SDK 47

Hello everyone 👋

I’ve just released a new beta version that should fix this (see: v1.5.1-beta.3). Please check it out, and if doesn’t solve the issue, feel free to open a new issue!

As this issue is accumulating all sorts of other issues, I’m going to close it, but please feel free to open a new issue if the release I’ve just mentioned doesn’t fix the build issue 👍

Facing same in using react native cli 😢

facing the same here, with Expo SDK 46, then read somewhere upgrading to 47 would solve, but it did not! Hoping for someone to fix it, I’m not a swift/objective-c developer, but looking into the classes I noticed in the class it’s trying to import it from another folder, does it make it difference? can it be imported from folder A to B without specifying it? if not, perhaps just fixing the reference should work. Just to exemplify a bit:

node_modules/react-native-maps/ios/AirGoogleMaps/AIRGoogleMapPolylineManager.m
line 17
#import "RCTConvert+AirMap.h"

and RCTConvert+AirMap.h is located in node_modules/react-native-maps/ios/AirMaps/RCTConvert+AirMap.h

so, if you noticed, they’re in different folders, and here is my question, does it matter? as I said, I’m not a swift/objective-c developer. no idea if you can reference classes from folder AirGoogleMaps to AirMaps like that, can it be?

Curious to know your thoughts people?

Yeah it’s odd. Before I tried your plugin fix, I had tried 1.7.1 (latest) – as well as 1.6.x and 1.4.x – and couldn’t get iOS to pass the build.

Just tried 1.7.1 again and got this:

› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapHeatmapManager.m

❌  (/Users/expo/workingdir/build/apps/order/ios/build/Build/Products/Debug-iphonesimulator/Google-Maps-iOS-Utils/GoogleMapsUtils.framework/Headers/GoogleMapsUtils-Swift.h:280:2)

  278 | 
  279 | #else
> 280 | #error unsupported Swift architecture
      |  ^ unsupported Swift architecture
  281 | #endif
  282 | 

❌  (../../node_modules/react-native-maps/ios/AirGoogleMaps/AIRGoogleMapHeatmap.h:7:9)

   5 | //
   6 | 
>  7 | #import "GMUHeatmapTileLayer.h"
     |         ^ could not build module 'GoogleMapsUtils'
   8 | 
   9 | @interface AIRGoogleMapHeatmap : UIView
  10 | 
› Compiling react-native-maps Pods/react-native-google-maps » AIRGoogleMapHeatmap.m

Must be some idiosyncrasy of my usage which is thwarting that fix.

Figured I’d concede to the expo-prescribed version 1.3.2, for the time being, but definitely curious to find a better solution.

This issue is still persisting, I tried with the plugin and builds, but the app crashes on first click. How has this not been fixed yet as it is a major breakage. Using expo v48.

Same issue and its a new issue, havent updated anything from the last build i did . But when I updated my xcode, the same error displayed in my code when I tr to use MapView in google provider but works fine if i turn it to ios map. And now when i build seems same issue that eas build is having. Cant tell its the issue but sharing my case if some one needs more details so we can trace the root cause.

The config plugin fix worked!

@leggomuhgreggo You no longer need the config plugin. Update "react-native-maps" to the latest version… The issue already solved

@jan-karnik SDK 47, Recently upgraded to SDK48.

[RUN_FASTLANE] The following build commands failed: [RUN_FASTLANE] PhaseScriptExecution [CP-User]\ Generate\ app.manifest\ for\ expo-updates /var/folders/4y/fgzcj0ks4bd2r29s4w8pc_t00000gq/T/eas-build-local-nodejs/331193ca-f1a9-4cde-bf0a-10ee35985159/build/ios/build/Build/Intermediates.noindex/Pods.build/Release-iphonesimulator/EXUpdates.build/Script-46EB2E0001C540.sh (in target ‘EXUpdates’ from project ‘Pods’) [RUN_FASTLANE] (1 failure) [RUN_FASTLANE] Exit status: 65 [RUN_FASTLANE] › Compiling expo-dev-menu Pods/expo-dev-menu » DevMenuREASetNode.m [RUN_FASTLANE] › Compiling expo-dev-menu Pods/expo-dev-menu » DevMenuREAPropsNode.m

Hello everyone 👋

I’ve just released a new beta version that should fix this (see: v1.5.1-beta.3). Please check it out, and if doesn’t solve the issue, feel free to open a new issue!

As this issue is accumulating all sorts of other issues, I’m going to close it, but please feel free to open a new issue if the release I’ve just mentioned doesn’t fix the build issue 👍

@Simon-TechForm I can confirm that it works!! I had the same issue, found this thread today and saw your comment about version 1.5.1-beta.3. Im installing the app using eas build --profile development --platform ios --clear-cache and will write here after if I found any issue with maps, etc.

Thanks

So that is not a build error my friend. This GitHub issue is for EAS iOS build failing.

You are just setting the value “row” in your CSS, in a wrong CSS property.

If you google just A BIT about it, you will find this:

https://stackoverflow.com/questions/60479653/invalid-ygdirection-row-should-be-one-of-inherit-ltr-rtl-react-native

You are absolutely correct. I recently switched to using expo-dev-client and used a different bundle identifier for this build. By adding this bundle identifier to my app on Google Cloud console under API keys the Google map started working again.

Thanks for pointing me in the right direction!

@jan-karnik Also, using "react-native-maps" version 1.4.0

No solutions out there yet? When I was using npm expo build:iOS, I wasn’t getting this issue

Try the method mentioned above @fakhruz3105

I tried it and as it was mentioned, compilation goes with no issues but the app crashes anyway

Same issue with react native version 0.70 build failed

The config plugin fix worked!

Details:

  • "expo": "48.0.19"
  • "react-native-maps": "1.3.2"
  • ['expo-build-properties', { ios: { useFrameworks: 'static' } }]
  • Nx monorepo

Thank you very much @SohelIslamImran 🙏

Not this, the logs of the build page of Expo.

Thank you, @SohelIslamImran. Even after forcing react-native-maps 1.4.0 on SDK 48 (apparently it prefers 1.3.2) it’s still throwing the error and crashing the app shortly after I open it. Maybe something else in my setup?

“dependencies”: { “@expo-google-fonts/lato”: “^0.2.2”, “@expo-google-fonts/oswald”: “^0.2.2”, “@expo/react-native-action-sheet”: “^4.0.1”, “@mapbox/geo-viewport”: “^0.5.0”, “@react-native-async-storage/async-storage”: “1.17.11”, “@react-native-community/eslint-config”: “^3.0.1”, “@react-native-community/masked-view”: “^0.1.11”, “@react-navigation/bottom-tabs”: “^6.1.0”, “@react-navigation/drawer”: “^6.4.1”, “@react-navigation/native”: “^6.1.1”, “@react-navigation/stack”: “^6.2.1”, “@shopify/flash-list”: “1.4.0”, “axios”: “^0.25.0”, “deepmerge”: “^3.3.0”, “eslint”: “^8.30.0”, “expo”: “^48.0.0”, “expo-asset”: “~8.9.1”, “expo-build-properties”: “~0.5.1”, “expo-cached-image”: “^48.0.0”, “expo-dev-client”: “~2.1.6”, “expo-device”: “~5.2.1”, “expo-font”: “~11.1.1”, “expo-image-picker”: “~14.1.1”, “expo-jwt”: “^1.4.1”, “expo-keep-awake”: “~12.0.1”, “expo-linear-gradient”: “~12.1.2”, “expo-location”: “~15.1.1”, “expo-navigation-bar”: “~2.1.1”, “expo-splash-screen”: “~0.18.1”, “expo-status-bar”: “~1.4.4”, “fast-deep-equal”: “^3.1.3”, “object-hash”: “^2.2.0”, “react”: “18.2.0”, “react-dom”: “18.2.0”, “react-native”: “0.71.4”, “react-native-confirmation-code-field”: “^7.3.1”, “react-native-gesture-handler”: “~2.9.0”, “react-native-google-mobile-ads”: “^10.0.0”, “react-native-maps”: “^1.4.0”, “react-native-paper”: “^4.11.2”, “react-native-reanimated”: “~2.14.4”, “react-native-safe-area-context”: “4.5.0”, “react-native-screens”: “~3.20.0”, “react-native-svg”: “13.4.0”, “react-native-web”: “~0.18.11”, “react-redux”: “^7.2.6”, “redux”: “^4.1.2”, “redux-thunk”: “^2.4.1”, “spin-delay”: “^1.2.0”, “styled-components”: “^5.3.3”, “supercluster”: “^7.1.5” },

A quick update. Switching to the default provider (Apple Maps) works.

Build works for me, but…

I was having the same problems with EAS build failed on iOS and by following the comment by @SohelIslamImran (https://github.com/react-native-maps/react-native-maps/issues/4563#issuecomment-1408609039) I managed to build my app (thanks for getting me that far!).

The problem I am experiencing is that the maps are blank. The indicator for my position is visible but no map details are there.

I’m using Expo 48 with react-native-maps version 1.4.0.

Anyone else experiencing this?

Some says it solves the build issue but it crashes the iOS app. Did your app crash?

Previously it was crashing but currently it is not crashing for me.

@SohelIslamImran What expo version were you running where it works and doesn’t crash can i ask?

Is there any exact solution about that? Any suggestion?

Hello all Since there is no merge for #4572, everyone can use this fork https://github.com/infoSamyak/react-native-maps/tree/master

same issue, on expo SDK 47

same issue here

Face the same issue, is there any fix yet?