Closed JaapWeijland closed 4 months ago
So I found how I can fix this by altering the ionic cap ios run
command of capacitor. In node_modules, in the file @capacitor/cli/dist/ios/run.js
, change the line that says id=${target.id}
to id=${target.id},arch=x86_64
. This will force capacitor to build the project using Rosetta, which is needed to build a project using this plugin for a simulator.
I'm not sure if this is a problem with this plugin, or a missing feature of capacitor to allow for building using Rosetta, especially now that this option to do this as a configuration within Xcode has been removed by Apple.
This should fix your issue: https://capawesome.io/blog/troubleshooting-capacitor-ios-issues/#could-not-find-module-capacitor-for-target-x86_64-apple-ios-simulator
No need to use Rosetta. Feel free to take a look at the official demo app for reference: https://github.com/robingenz/capacitor-mlkit-plugin-demo/blob/main/ios/App/Podfile
Thanks for your response. I already tried this, and unfortunately, it does not work. I added the lines to the reproduction repo as well, so you can see what I did and try it out yourself if you want.
Edit: actually, I tried running the demo app, but that app errors out with the same error as well:
SwiftEmitModule normal x86_64 Emitting\ module\ for\ App (in target 'App' from project 'App')
Repro path:
ionic cap sync
ionic cap ios run
Added Ionic versions to opening post:
ionic --version
: 7.2.0
ionic cap --version
: 7.2.0
(not sure if this matters)
Okay, now I was able to reproduce your problem. But only in the simulator, on a device it works without problems. This is how i fixed it: https://github.com/robingenz/capacitor-mlkit-plugin-demo/commit/febf32339702917889d65451a0a62bdd22836e2b
Works! Thanks alot. Since from now on all newcomers will pretty much experience what I've experienced when they want to run their app on a simulator, it might be handy to add this to the documentation or FAQ or something similar. Anyway, thank you very much for helping out!
I'm glad that it is now working. I have updated the blog post.
Plugin(s)
Version
6.0.0
Platform(s)
Current behavior
When adding the barcode scanning plugin, version 6.0.0, the capacitor ceases to build the app via the command line. Error:
SwiftEmitModule normal x86_64 Emitting\ module\ for\ App (in target 'App' from project 'App')
. Just before adding this package it all worked just fine.Expected behavior
To be able to build my Ionic app
Reproduction
https://github.com/JaapWeijland/barcode-scanning-repro
Steps to reproduce
ionic start
and create a blank React app.ionic cap add ios
ionic cap run ios
iPhone 15 simulator
npm i @capacitor-mlkit/barcode-scanning
ionic cap sync
ionc cap run ios
iPhone 15 simulator
Other information
Apple M1 Pro, Sonoma 14.4.1 Xcode 15.3 Simulator iPhone 15 Cocoapods 1.15.2,
which pod
: /opt/homebrew/bin/pod (so its installed with homebrew)ionic --version
:7.2.0
ionic cap --version
:7.2.0
(not sure if this matters)Using capacitor v6
Note: when I run the app via Xcode choosing a simulator with rosetta active, it works. However, I can't choose these rosetta simulators in the list
ionic cap run ios
provides me.Capacitor doctor
[success] iOS looking great! 👌
Before submitting