Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
2 tasks
narenderreddych opened this issue Dec 7, 2023 · 33 comments
Open
2 tasks

Comments

@narenderreddych
Copy link

narenderreddych commented Dec 7, 2023

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

  • [ x] question
  • [x ] any problem or bug report

OS: (check one with "x")

  • Android
  • [x ] iOS
  • Browser

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 🍺 from here
macOS 14 Sonoma

@tmwebs
Copy link

tmwebs commented Dec 13, 2023

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
Copy link
Author

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
Copy link
Contributor

dpa99c commented Dec 18, 2023

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
Copy link

tmwebs commented Dec 18, 2023

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
Copy link
Contributor

dpa99c commented Dec 18, 2023

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
Copy link

tmwebs commented Dec 19, 2023

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
Copy link

shajz commented Jan 5, 2024

@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
Copy link

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
Copy link

tmwebs commented Jan 8, 2024

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
Copy link

taxman007 commented Jan 17, 2024

@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
Copy link

taxman007 commented Feb 3, 2024

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
Copy link

tmwebs commented Feb 8, 2024

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

@taxman007
Copy link

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
Copy link

tmwebs commented Mar 19, 2024

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;

@GitToTheHub
Copy link

GitToTheHub commented Jun 9, 2024

@dpa99c

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

Hi, thank you very much for the fix. This fixes iOS, but produces build errors on Android, because you use the master-branch of cordova-plugin-googlemaps which contains not the latest fixes. The multiple_maps-branch contains the latest changes on android and produces no build errors (but you have to include a small AGP fix: multiple_maps...GitToTheHub:cordova-plugin-googlemaps:multiple_maps-agp-assert-fix)

@tmwebs
Copy link

tmwebs commented Jun 10, 2024

Hi, thank you very much for the fix. This fixes iOS, but produces build errors on Android, because you use the master-branch of cordova-plugin-googlemaps which contains not the latest fixes. The multiple_maps-branch contains the latest changes on android and produces no build errors (but you have to include a small AGP fix: multiple_maps...GitToTheHub:cordova-plugin-googlemaps:multiple_maps-agp-assert-fix)

Thanks for the contribution, I have installed the multiple_mpas branch and I have modified the files you said, but I still have the same problem that I describe above with the Framework7 paths in Android, it does not do the navigation well, when I open a page, when I go backwards it remains blank.

@GitToTheHub
Copy link

Hi @tmwebs,
I‘m not familiar with Framework7. When you only add the googlemaps-plugin and do not use it anywhere in the project, does then the error occur? Maybe you could inspect your app with Google Chrome and see if a Javascript error occurs, see https://cordova.apache.org/docs/en/11.x/guide/next/#chrome-remote-debugging

@tmwebs
Copy link

tmwebs commented Jun 10, 2024

I have tested it and it doesn't show any error in the console, I don't understand it, it just happens when installing the plugin, I am not using it yet.

Grabacion.de.pantalla.2024-06-10.a.las.11.13.47.mov

@GitToTheHub
Copy link

Could you make a blank framework7 app with just googlemaps-plugin installed and test it?

@tmwebs
Copy link

tmwebs commented Jun 10, 2024

Yes, that's just what I did in the comment above, it only has the googlemaps plugin.

#2923 (comment)

@GitToTheHub
Copy link

Could you test my fork https://github.com/GitToTheHub/cordova-plugin-googlemaps/tree/multiple_maps-fix

This is based on the multiple_maps-branch and is a merge of GitToTheHub#1 and GitToTheHub#3

@tmwebs
Copy link

tmwebs commented Jun 10, 2024

Thank you. I have tried and it still executes the bug, it has to be an incompatibility of the plugin with framework7.

@GitToTheHub
Copy link

GitToTheHub commented Jun 10, 2024 via email

@tmwebs
Copy link

tmwebs commented Jun 11, 2024

Yes, thanks, I do it that way, but I can't see it, I'm not an expert on this.

@GitToTheHub
Copy link

GitToTheHub commented Jun 11, 2024 via email

@tmwebs
Copy link

tmwebs commented Jun 11, 2024

Thank you very much, I have created an empty Framework7 project for Android and iOS.

git clone https://[email protected]/tmwebs-cloud/app-maps.git

@GitToTheHub
Copy link

Hi thanks for your source, but it says Current working directory is not a Cordova-based project. when i do cordova build android on your project.

@tmwebs
Copy link

tmwebs commented Jun 11, 2024

from the root directory you must install the dependencies

npm install

and also from the root directory:

npm run build-cordova-android

npm run build-cordova-ios

to install the plugin if you have to go to the cordova directory and do it from there

cd cordova
cordova plugin add ....

@GitToTheHub
Copy link

GitToTheHub commented Jun 11, 2024 via email

@GitToTheHub
Copy link

Hi, i saw the same issue as you. I could reveal the blank page with the Chrome Developer Tools, by removing display: none !important; from the CSS class: .framework7-root .page-previous after doing the navigation back. After that the page appears again and surprisingly the issue does not occur anymore. Something is conflicting in the Javascript of Framework7 and the GoogleMaps-Plugin. When you google for "framework7 googlemaps", you can find other solutions. Some propose to use leafletjs as an alternative solution, or you can use the GoogleMaps Javascript Library. You can also ask the question on the Framework7-Forum.

@tmwebs
Copy link

tmwebs commented Jun 12, 2024

thank you very much @GitToTheHub, I have managed to solve it, I have removed that line and the map, the Marker and the application in general works fine, I have removed it from the pluginInit.js file in the path:

cordova-plugin-googlemaps/www/pluginInit.js

I thank you again because I was really stuck.

@GitToTheHub
Copy link

GitToTheHub commented Jun 12, 2024 via email

@anis-kyo
Copy link

use this:

cordova plugin rm cordova-plugin-googlemaps && cordova plugin add github:dpa99c/cordova-plugin-googlemaps.git

can fix it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants