mapsplugin / cordova-plugin-googlemaps

Google Maps plugin for Cordova
Apache License 2.0
1.66k stars 912 forks source link

Cordova iOS 7.0.1 'cordova/CDVCommandDelegateImpl.h' file not found #2923

Open narenderreddych opened 5 months ago

narenderreddych commented 5 months ago

I'm submitting a ... (check one with "x")

OS: (check one with "x")

cordova information: (run $> cordova plugin list) cordova-plugin-googlemaps

'cordova/CDVCommandDelegateImpl.h' file not found 

Its working as expected Cordova iOS version 6.2.0 I have upgraded the macOS 14 | Sonoma xcode 15 Node|npm Git Cordova iOS 7.0.1 latest version facing issue -- tried with sample application integrating only one maps plugin. Getting Build issues "cordova/CDVCommandDelegateImpl.h file not found".

If you use @ionic-native/google-maps, please tell the package.json (only @ionic-native/core and @ionic-native/google-maps are fine mostly)

@ionic-native/core : 
@ionic-native/google-maps : 

Current behavior:

Expected behavior:

Screen capture or video record:

Related code, data or error log (please format your code or data):

Please share your project files on Github or others(Bitbucket, Gitlabs...etc).
If you don't want to share your project files, please create a demo project, then share it.

Screen captures, and/or native logs(such as Logcat, xcode logs) are appreciate.

Giving much information, you are waiting time is less.
Thank you for your cooperation.

Support this plugin activity

I appreicate if you give me a beer :beer: from here macOS 14 Sonoma

tmwebs commented 4 months ago

Same error, did you manage to solve it, I get error when installing the plugin:

apple-xcode version check failed (/Users/toni/desarrollo/app/etsiam/cordova/platforms/ios/cordova/apple_xcode_version), continuing anyways. apple-ios version check failed (/Users/toni/desarrollo/app/etsiam/cordova/platforms/ios/cordova/apple_ios_version), continuing anyways.

narenderreddych commented 4 months ago

I could not resolved the issue. I get error when installing the plugin:

apple-xcode version check failed (/Users/toni/desarrollo/app/etsiam/cordova/platforms/ios/cordova/apple_xcode_version), continuing anyways. apple-ios version check failed (/Users/toni/desarrollo/app/etsiam/cordova/platforms/ios/cordova/apple_ios_version), continuing anyways.

Later i created a new project and install only one plugin. plugin installed successfully. but while doing build getting error. This is affecting from Cordova iOS 7.0.0+

Cordova iOS 6.3.0 working as expected.

dpa99c commented 4 months ago

The problem is that the current version of this plugin uses the CDVCommandDelegateImpl class which has been changed from Public to Private in cordova-ios@7 so is no longer available for the plugin to use.

I've fixed this problem with this commit on my fork of this plugin.

If you want to use my fork: cordova plugin rm cordova-plugin-googlemaps && cordova plugin add github:dpa99c/cordova-plugin-googlemaps.git

tmwebs commented 4 months ago

Thanks for your answers. I followed the steps, deleted cordova-plugin-googlemaps and installed github:dpa99c/cordova-plugin-googlemaps.git, and the error I get is when building: Building for 'iOS-simulator', but linking in object file (/Users/XXX/Desarrollo/APP/XXX/cordova/platforms/ios/XXXX/Plugins/com.googlemaps.ios/GoogleMapsBase.framework/GoogleMapsBase) built for 'iOS'

dpa99c commented 4 months ago

Try my test project to rule out issues in your existing project:

git clone https://github.com/dpa99c/cordova-plugin-googlemaps-test
cd cordova-plugin-googlemaps-test
cordova plugin add github:dpa99c/cordova-plugin-googlemaps
cordova platform add ios@7
cordova build ios

If that works try to remove/re-add the platform in your own project: cordova platform rm ios --nosave && cordova platform add ios --nosave

Here's the console output from my test project build: console.log

tmwebs commented 4 months ago

I have followed all the steps and it still does not build, could it be because of the emulator? I attach my log file: output3.log

shajz commented 4 months ago

@tmwebs you need to use the Rosetta simulators. In XCode, you need to tick Product -> Destination -> Destination Architectures -> Show Rosetta Destinations

Then select a simulator suffixed by (Rosetta, xx.0)


The fix provided by @dpa99c works perfectly, thanks a lot! I'd love to remove my fork of this project and use yours but I see I included a few bugfixes here and there (don't remember why or if they're needed though ...)

pworthing commented 4 months ago

Thank you so much for the dpa99c fork!!! It seems to fix the issue here. Still getting the apple-xcode/apple-ios "version check failed" messages listed above. Anyone know how to solve or if this will be an issue going forward? (maybe on submit)

tmwebs commented 3 months ago

thanks @shajz, so I have been able to run it in the simulator, but I still have a problem, it opens the application, but the map is not drawn.

my config.xml:

Simulator Screenshot - iPhone 15 Pro - 2024-01-08 at 07 24 05

taxman007 commented 3 months ago

@tmwebs I would double check that your API Keys are installed correctly (or authorized in Google Maps console). Just my previous experience with the map not showing. Hopefully that fixes your issue.

taxman007 commented 3 months ago

Try my test project to rule out issues in your existing project:

git clone https://github.com/dpa99c/cordova-plugin-googlemaps-test
cd cordova-plugin-googlemaps-test
cordova plugin add github:dpa99c/cordova-plugin-googlemaps
cordova platform add ios@7
cordova build ios

If that works try to remove/re-add the platform in your own project: cordova platform rm ios --nosave && cordova platform add ios --nosave

Here's the console output from my test project build: console.log

First off. Huge thanks for the changes to this plugin. Solved a headache for me.

Just want to mention one thing for those who run into a problem with Android Studio, when building an Android version of your app, you will need to add the following to the plugin file platforms/android/cordova-plugin-googlemaps/....custom.gradle just above "def PLAY_SERVICES_VERSION"

dependencies {    
      implementation 'com.google.android.libraries.maps:maps:3.1.0-beta'
      implementation 'com.android.support:multidex:1.0.3'
    }
tmwebs commented 2 months ago

Thanks @taxman007, now the map works for me, but this has generated a problem in my project, when I am in a view and it opens another page, when I go backwards, either using a back button or the android backbutton, I go back to a blank view, everything has been deleted. I use framework7. No problem on iOS.

https://github.com/mapsplugin/cordova-plugin-googlemaps/assets/12540076/37ff2e77-18f9-4e4d-aa61-5ec25d8e3dcc

taxman007 commented 1 month ago

Thanks @taxman007, now the map works for me, but this has generated a problem in my project, when I am in a view and it opens another page, when I go backwards, either using a back button or the android backbutton, I go back to a blank view, everything has been deleted. I use framework7. No problem on iOS.

Grabacion.de.pantalla.2024-02-08.a.las.11.05.52.mov

looks like a problem with your page routing. I would check that. I like to use navigatebyUrl when navigating through pages.

tmwebs commented 1 month ago

I use the Framework7 wrapper, and it works if I remove the cordova-plugin-googlemaps plugin and fails if I install it. my route file is:

import HomePage from '../pages/home.f7';
import AboutPage from '../pages/about.f7';
import FormPage from '../pages/form.f7';
import CatalogPage from '../pages/catalog.f7';
import ProductPage from '../pages/product.f7';
import SettingsPage from '../pages/settings.f7';

import DynamicRoutePage from '../pages/dynamic-route.f7';
import RequestAndLoad from '../pages/request-and-load.f7';
import NotFoundPage from '../pages/404.f7';

var routes = [
  {
    path: '/',
    component: HomePage,
  },
  {
    path: '/about/',
    component: AboutPage,
  },
  {
    path: '/form/',
    component: FormPage,
  },
  {
    path: '/catalog/',
    component: CatalogPage,
  },
  {
    path: '/product/:id/',
    component: ProductPage,
  },
  {
    path: '/settings/',
    component: SettingsPage,
  },

  {
    path: '/dynamic-route/blog/:blogId/post/:postId/',
    component: DynamicRoutePage,
  },
  {
    path: '/request-and-load/user/:userId/',
    async: function ({ router, to, resolve }) {
      // App instance
      var app = router.app;

      // Show Preloader
      app.preloader.show();

      // User ID from request
      var userId = to.params.userId;

      // Simulate Ajax Request
      setTimeout(function () {
        // We got user data from request
        var user = {
          firstName: 'Vladimir',
          lastName: 'Kharlampidi',
          about: 'Hello, i am creator of Framework7! Hope you like it!',
          links: [
            {
              title: 'Framework7 Website',
              url: 'http://framework7.io',
            },
            {
              title: 'Framework7 Forum',
              url: 'http://forum.framework7.io',
            },
          ]
        };
        // Hide Preloader
        app.preloader.hide();

        // Resolve route to load page
        resolve(
          {
            component: RequestAndLoad,
          },
          {
            props: {
              user: user,
            }
          }
        );
      }, 1000);
    },
  },
  {
    path: '(.*)',
    component: NotFoundPage,
  },
];

export default routes;