Quantcast
Channel: Ionic Forum - Latest posts
Viewing all 230425 articles
Browse latest View live

How to Disable Ionic CLI Update Notification in Version 3.20.0 When Running on Docker

$
0
0

I am running an Ionic 3 project using Docker, but I encountered the following issue when executing commands inside the container:

The Ionic CLI has an update available (3.20.0 => 5.4.16)! Would you like to install it? No
Not automatically updating your CLI

Since this prompt requires manual confirmation (Y/N), it prevents the Docker container from running smoothly. I need a way to disable this update notification properly in Ionic CLI 3.20.0 so that the container can execute commands without interruption.

What I Have Tried

  • Running npm install -g ionic@3.20.0 before executing other commands inside the container
  • Using environment variables like IONIC_CLI_DISABLE_UPDATE_CHECK (but it seems unsupported in this version)
  • Checking Ionic CLI config files for an option to disable update checks

Expected Solution

  • A correct way to disable the update notification in Ionic CLI 3.20.0
  • The solution must be Docker-compatible and should not require manual input

If anyone has encountered this issue and found a workaround, please share your insights. Thanks!


Bun support for ionic CLI

$
0
0

How can I use Bun as the default package manager with ionic CLI?

after updating the global config with

ionic config set -g npmClient bun

I got the following error when running ionic start

> ionic integrations enable capacitor --quiet -- my-app io.ionic.starter
Error: unknown installer: bun
    at pkgManagerArgs (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/utils/npm.js:54:19)
    at Integration.installCapacitorCore (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/integrations/capacitor/index.js:133:74)
    at Integration.add (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/integrations/capacitor/index.js:121:24)
    at async IntegrationsEnableCommand.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/commands/integrations/enable.js:64:17)
    at async Promise.all (index 0)
    at async IntegrationsEnableCommand.execute (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/command.js:104:9)
    at async Executor.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/executor.js:55:9)
    at async Executor.execute (/Users/kng/.bun/install/global/node_modules/@ionic/cli-framework/lib/executor.js:71:13)
    at async runCommand (/Users/kng/.bun/install/global/node_modules/@ionic/cli/lib/executor.js:63:5)
    at async StartCommand.run (/Users/kng/.bun/install/global/node_modules/@ionic/cli/commands/start.js:601:17)

Seems that it fails when installing capacitor.

Capacitor don't store cookies

$
0
0

Hey there!

I know its been some time since this was posted, but i want to confirm that i now have a working setup for this and im gonna share my code so others dont have to search for HOURS just like me on how to properly do it.

I used Vue Ionic

First off: @twestrick, your answer was my guiding light tbh! So thanks for that!
I ended up using the native capacitor cookie plugin: Here

And Capacitor Http: Here

And just wrote up a api service to use everywhere!

Here is the code, have fun! :smiley:

import { CapacitorHttp as Http } from '@capacitor/core';

// API key
const BASE_URL: string = import.meta.env.VITE_APP_API_BASE_URL;

interface ApiResponse<T> {
  data: T;
  status: number;
}

interface ApiError {
  statusCode: number;
  message: string;
}

// Centralized Error Handler
const handleError = (error: any): ApiError => {
  return {
    statusCode: error.status || 500,
    message: error.message || 'An unexpected error occurred',
  };
};

export const apiService = {
  async get<T>(url: string, options: object = {}): Promise<T> {
    try {
      const response: ApiResponse<T> = await Http.get({
        url: `${BASE_URL}${url}`,
        headers: {
          'Content-Type': 'application/json',
          'x-api-key': "YOUR API KEY",
        },
        connectTimeout: 5000,
        readTimeout: 5000,
        webFetchExtra: { credentials: 'include' },
        ...options,
      });
      return response.data;
    } catch (error) {
      throw handleError(error);
    }
  },

  async post<T>(url: string, body: object | null = null, options: object = {}): Promise<T> {
    try {
      const response: ApiResponse<T> = await Http.post({
        url: `${BASE_URL}${url}`,
        headers: {
          'Content-Type': 'application/json',
          'x-api-key': "YOUR API KEY",
        },
        data: body,
        connectTimeout: 5000,
        readTimeout: 5000,
        webFetchExtra: { credentials: 'include' },
        ...options,
      });
      return response.data;
    } catch (error) {
      throw handleError(error);
    }
  },

  async put<T>(url: string, body: object, options: object = {}): Promise<T> {
    try {
      const response: ApiResponse<T> = await Http.put({
        url: `${BASE_URL}${url}`,
        headers: {
          'Content-Type': 'application/json',
          'x-api-key': "YOUR API KEY",
        },
        data: body,
        connectTimeout: 5000,
        readTimeout: 5000,
        webFetchExtra: { credentials: 'include' },
        ...options,
      });
      return response.data;
    } catch (error) {
      throw handleError(error);
    }
  },

  async delete<T>(url: string, options: object = {}): Promise<T> {
    try {
      const response: ApiResponse<T> = await Http.delete({
        url: `${BASE_URL}${url}`,
        headers: {
          'Content-Type': 'application/json',
          'x-api-key': "YOUR API KEY",
        },
        connectTimeout: 5000,
        readTimeout: 5000,
        webFetchExtra: { credentials: 'include' },
        ...options,
      });
      return response.data;
    } catch (error) {
      throw handleError(error);
    }
  },
};

PS: Make sure your cookies handle the domain property correctly aswell ;D
→ Oh and also: adjust the timeouts depending on data-load and your own estimate!

How to Disable Ionic CLI Update Notification in Version 3.20.0 When Running on Docker

$
0
0

The Ionic CLI doesn’t determine the Ionic Framework version to be used, as far as I know, Ionic CLI 5.x is still compatible with Ionic 3 apps, so you should be able to use that version without problems.

iOS Firebase Connection Nothing Happens

$
0
0

I found the solution, it’s quite easy actually and it’s not related to CORS finally.

Here is the solution to add in your Firebase configuration :slight_smile:

Check where my comment starts with HERE NEW CODE and the imports :slight_smile:

import { initializeApp } from "firebase/app";
import {
  initializeFirestore,
  persistentLocalCache,
  persistentSingleTabManager,
  CACHE_SIZE_UNLIMITED,
} from "firebase/firestore";
import {
  getAuth,
  setPersistence,
  browserLocalPersistence,
  indexedDBLocalPersistence,
  initializeAuth,
  Auth,
} from "firebase/auth";
import { Capacitor } from "@capacitor/core";

const firebaseConfig = {
  apiKey: process.env.REACT_APP_FIREBASE_API_KEY,
  authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN,
  projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID,
  storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET,
  messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_SENDER_ID,
  appId: process.env.REACT_APP_FIREBASE_APP_ID,
  measurementId: process.env.REACT_APP_FIREBASE_MEASUREMENT_ID,
};

// Initialisation de Firebase
const app = initializeApp(firebaseConfig);
console.log("Firebase Initialised");

// Configuration Firestore avec persistance des données en cache
const firestore = initializeFirestore(app, {
  localCache: persistentLocalCache({
    tabManager: persistentSingleTabManager(undefined),
    cacheSizeBytes: CACHE_SIZE_UNLIMITED,
  }),
});


// HERE NEW CODE : Auth differently from Web or Device (Native)
let auth: Auth;
if (Capacitor.isNativePlatform()) {
  // Sur mobile (iOS/Android), utiliser IndexedDB
  auth = initializeAuth(app, {
    persistence: indexedDBLocalPersistence
  });
  console.log("[Firebase] 📱 Auth set up for IndexedDB (mobile).");
} else {
  // Sur web, utiliser browserLocalPersistence
  auth = getAuth(app);
  setPersistence(auth, browserLocalPersistence)
    .then(() => {
      console.log("Persistance Firebase Auth set up for local (web).");
    })
    .catch((error) => {
      console.error(
        "Error while configuring Firebase Auth persistence:",
        error
      );
    });
}

export default app;
export { firestore, auth };

ionItemReorder event not triggering

$
0
0

I just made a new Ionic 8 Vue app and tried the ion-reorder-group component, but the ionItemReorder event is not triggering and the animation freezes (because i cant do the event.detail.complete()).

I am just using the basic example: ion-reorder: Drag and Drop Icon to Reorder Items

Ionic Portals pricing

$
0
0

Yikes! That’s not good! I’m curious why the Ionic team hasn’t shared a post about this blog here like they usually do. :thinking: This is a major announcement.

ionItemReorder event not triggering

$
0
0

Ionic Vue 8.4.3 event handlers are broken. Revert to 8.4.2 until a fix is released.


ionItemReorder event not triggering

$
0
0

Does not work for me. I started with 8.0, went to the latest version and tested 8.4.2 now, but nothing works.

ionItemReorder event not triggering

$
0
0

You’ll have to show more code. And verify that you installed npm packages after updating the version to 8.4.2.
If you go to the docs and click on the :zap: for stackblitz sample, it is working there. And I forked that and converted it to script setup and it still works and fires the event.detail.complete(). Here’s my fork:

Coming Soon! New updates & Features for Ionic’s Open Source Projects

Google Firebase signInWithPopup doesn't show on iOS using Ionic Capacitor

$
0
0

When using firebase.auth().signInWithPopup(googleAuthProvider);, it works fine in the web app, but nothing happens in the iOS simulator using Ionic Capacitor. Do I need to use some kind of in app browser? Is there another way to sign in with google using Ionic Capacitor?

Google Firebase signInWithPopup doesn't show on iOS using Ionic Capacitor

ionItemReorder event not triggering

$
0
0

I really just went do Vue QuickStart Global Component for Generating Ionic Vue Apps, created a new app and copy pasted the basic example of the reorder component: ion-reorder: Drag and Drop Icon to Reorder Items. I am not new with Vue/Ionic and i really dont know whats the issue here.

The package json when installing a new project with the CLI looks like this:

{
  "name": "reorder-new-test",
  "private": true,
  "version": "0.0.1",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vue-tsc && vite build",
    "preview": "vite preview",
    "test:e2e": "cypress run",
    "test:unit": "vitest",
    "lint": "eslint ."
  },
  "dependencies": {
    "@capacitor/app": "7.0.0",
    "@capacitor/core": "7.0.1",
    "@capacitor/haptics": "7.0.0",
    "@capacitor/keyboard": "7.0.0",
    "@capacitor/status-bar": "7.0.0",
    "@ionic/vue": "^8.0.0",
    "@ionic/vue-router": "^8.0.0",
    "ionicons": "^7.0.0",
    "vue": "^3.3.0",
    "vue-router": "^4.2.0"
  },
  "devDependencies": {
    "@capacitor/cli": "7.0.1",
    "@vitejs/plugin-legacy": "^5.0.0",
    "@vitejs/plugin-vue": "^4.0.0",
    "@vue/eslint-config-typescript": "^12.0.0",
    "@vue/test-utils": "^2.3.0",
    "cypress": "^13.5.0",
    "eslint": "^8.35.0",
    "eslint-plugin-vue": "^9.9.0",
    "jsdom": "^22.1.0",
    "terser": "^5.4.0",
    "typescript": "~5.6.2",
    "vite": "~5.2.0",
    "vitest": "^0.34.6",
    "vue-tsc": "^2.1.10"
  },
  "description": "An Ionic project"
}

I also tested it with 8.4.2 and installed the depencies again. The event doesnt get logged as well, so i am not getting the event triggered.

ionItemReorder event not triggering

$
0
0

Did you try using “8.4.2” as the version in package.json? That will pull ONLY 8.4.2. This is called pinning the version. If you use “^8.4.2” (with the caret) you will actually get the latest minor update which is 8.4.3.
Sorry if you already know this. Just checking the base assumptions.


ionItemReorder event not triggering

$
0
0

Omg, thats embarrassing now haha. I forgot about that… Thank you so much, it of course works now.

Google Firebase signInWithPopup doesn't show on iOS using Ionic Capacitor

$
0
0

I think this is getting closer to the right solution. It still works in the web using @capacitor-firebase/authentication, but now I’m getting a Thread 1: signal SIGABRT app crash when trying in the iOS simulator :frowning:, and I’m not sure how to debug it from here.

Android build error after Capacitor 6 to 7 upgrade

$
0
0

We are developing an Angular 18 application with Capacitor, for both iOS and Android. After updating the application based on the “Upgrade guide from v6 to v7” we are now experiencing a build error (below) when Android Studio rebuilds the project, i.e. before running the emulator:

> Task :capacitor-cordova-android-plugins:checkDebugAndroidTestDuplicateClasses FAILED
Execution failed for task ':capacitor-cordova-android-plugins:checkDebugAndroidTestDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
   > Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.internal.jdk7.JDK7PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.internal.jdk8.JDK8PlatformImplementations$ReflectSdkVersion found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.io.path.ExperimentalPathApi found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathRelativizer found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt__PathReadWriteKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.io.path.PathsKt__PathUtilsKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.jdk7.AutoCloseableKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk7-1.6.21.jar -> kotlin-stdlib-jdk7-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21)
     Duplicate class kotlin.jvm.jdk8.JvmRepeatableKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.random.jdk8.PlatformThreadLocalRandom found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$1 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$2 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$3 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.streams.jdk8.StreamsKt$asSequence$$inlined$Sequence$4 found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.text.jdk8.RegexExtensionsJDK8Kt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)
     Duplicate class kotlin.time.jdk8.DurationConversionsJDK8Kt found in modules kotlin-stdlib-1.8.22.jar -> kotlin-stdlib-1.8.22 (org.jetbrains.kotlin:kotlin-stdlib:1.8.22) and kotlin-stdlib-jdk8-1.6.21.jar -> kotlin-stdlib-jdk8-1.6.21 (org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21)

I have tried many different fixes in the gradle.build files, including ensuring the kotlin_version is set correctly (as per upgrade docs), specifying the kotlin-stdlib version, including exclusions for other groups / modules, etc. I have also invalidated the cache and restarted Android Studio, deleted my Gradle caches, obviously cleaned the project before the rebuild, etc, but nothing seems to work; and, looking at the gradle dependencies (below), everything seems to be using the correctly specified version for kotlin-stdlib .

./gradlew app:dependencies --configuration debugRuntimeClasspath | grep kotlin           
+--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 -> 1.9.25 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 -> 1.9.25 (c)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.25 (c)
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.25
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.25
|         \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 (*)
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.25 (*)
+--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3
|    \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3
|         +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3
|         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.7.3 (c)
|         |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (c)
|         |    \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 (c)
|         +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20 -> 1.9.25
|         \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.9.25 (*)
+--- org.jetbrains.kotlin:kotlin-bom:1.9.25
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.9.25 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.25 (c)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.25 (c)
|    \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.9.25 (c)
|    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.25 (*)
|    |    |         \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.9.25 (*)
|    |    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3
|    |    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 (*)
|    |    |    |    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.7.3 (*)
|    |    |    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 -> 1.7.3 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.10 -> 1.9.25 (*)
|    |    \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 1.9.25 (*)
|    \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.9.25 (*)
|    +--- org.jetbrains.kotlin:kotlin-bom:1.9.25 (*)

In terms of the Angular/Capacitor project we are using the following:

npm -v: 10.8.2
node -v: v22.3.0

./gradlew -version
------------------------------------------------------------
Gradle 8.11.1
------------------------------------------------------------

Kotlin:        2.0.20
Groovy:        3.0.22
Ant:           Apache Ant(TM) version 1.10.14 compiled on August 16 2023
Launcher JVM:  21.0.3 (Oracle Corporation 21.0.3+7-LTS-152)
Daemon JVM:    /Library/Java/JavaVirtualMachines/jdk-21.0.3.jdk/Contents/Home (no JDK specified, using current Java home)
OS:            Mac OS X 15.3.1 aarch64

------------------------------------------------------------

💊   Capacitor Doctor  💊 

Latest Dependencies:

  @capacitor/cli: 7.0.1
  @capacitor/core: 7.0.1
  @capacitor/android: 7.0.1
  @capacitor/ios: 7.0.1

Installed Dependencies:

  @capacitor/cli: 7.0.1
  @capacitor/core: 7.0.1
  @capacitor/android: 7.0.1
  @capacitor/ios: 7.0.1

[success] iOS looking great! 👌
[success] Android looking great! 👌

As mentioned above, there were no problems with Capacitor v6 the project built and the emulator worked with live reload applying changes made in IntelliJ to the Angular project, but cannot seem to get past this build error for v7, so any help is very greatly appreciated.

Many thanks in advance.

Google Firebase signInWithPopup doesn't show on iOS using Ionic Capacitor

$
0
0

I backtracked and resolved the SIGABRT error. Here’s what I’ve done so far:

  1. yarn add @capacitor-firebase/authentication
  2. Used this when signing in:
import { FirebaseAuthentication } from "@capacitor-firebase/authentication";
import { GoogleAuthProvider } from "firebase/auth";
...
  const result = await FirebaseAuthentication.signInWithGoogle();
  // 2. Sign in on the web layer using the id token
  const credential = GoogleAuthProvider.credential(
    result.credential?.idToken
  );
  firebase.auth().signInWithCredential(credential);
  1. Added an iOS app to my firebase console, downloaded the GoogleService-Info.plist file and put it in my ios/App/App folder (including adding it in xcode)
  2. Added FirebaseApp.configure() to the application method in the AppDelegate.swift file where FirebaseApp comes from import FirebaseCore
  3. Added this to my capacitor.config.ts file:
plugins: {
    FirebaseAuthentication: {
      skipNativeAuth: false,
      providers: ["google.com"],
    },
  },

Yet when clicking the “Sign In With Google” button. Nothing happens, but I would expect a popup to appear to be able to log in with google.

Handling Privacy Manifest Requirements with Outdated Firebase and Angular Version

$
0
0

Thanks for the response.
Yep looking to update to Capacitor 5.7.4 initially as that is an easy update.

You raise an interesting point with Firebase native vs JS, I’m not really sure how to connect them to know which SDKs listed by the app store relate to which packages in my project.

If I am not updating Firebase to 10.22.0 I will need to manually create a privacy manifest to cover all those SDKs, correct?

For example how would I find the correct info to add to the privacy manifest for Frameworks/FirebaseMessaging.framework/FirebaseMessaging or Frameworks/FBLPromises.framework/FBLPromises?

I can’t even find the text “FBLPromises” in my project. I guess I’ll need to search the native project in Xcode?

One option might be to create a new project and install the latest versions of all of these packages that automatically generate a privacy manifest and then copy that manifest to my project…

"@angular/fire": "^6.1.5",
"@capacitor-community/fcm": "^5.0.2",
"@capacitor-community/firebase-analytics": "^5.0.1",
"@capacitor-community/stripe": "^5.2.0",
"@capacitor/android": "^5.4.2",
"@capacitor/app": "^5.0.6",
"@capacitor/core": "^5.4.2",
"@capacitor/device": "^5.0.6",
"@capacitor/ios": "^5.4.2",
"@capacitor/keyboard": "^5.0.6",
"@capacitor/network": "^5.0.6",
"@capacitor/push-notifications": "^5.1.0",
"@capacitor/screen-orientation": "^5.0.7",
"@capacitor/splash-screen": "^5.0.6",
"@capacitor/status-bar": "^5.0.6",
"@pantrist/capacitor-firebase-dynamic-links": "^5.0.1",
"es6-promise-plugin": "^4.2.2",
"firebase": "^8.2.5",

devDependencies:
"@firebase/testing": "^0.20.11",
Viewing all 230425 articles
Browse latest View live