I was wondering if anyone knows if you can start a Flutter debug session with iPhone Simulator + Apple Watch simulator without having to start the Apple Watch instance from Xcode.
Current procedure is:
Change code in xcode/vscode
Start WatchApp scheme in Xcode
Wait for build to finish
Go to VSCode and start Flutter debugging session (which rebuilds the app)
What I would like to be able to do:
Change code in vscode
Start Flutter debugging which builds Runner and AppleWatch at the same time
No need to open xcode.
I have tried xcodebuild command line but can't seem to get it working. It asks for cloud-firestore but that might be another problem.
Related
I'm creating a flutter plugin and I just tried the example project that gets created by flutter it self. This example project is an app that shows the operation system and its version. If I start it from Xcode on my iPhone SE, it works fine.
But if I close the app and open it without Xcode, that means that I tipp on the app icon to launche it, like every normal app, it doesn't start correctly.
It is showing for not even a second a white screen, followed by a black screen and is closing the app right after this.
Why is it behaving like that?
Is it, because it is a debug version and needs Xcode?
How can I put my example app on my iPhone without needing a connection to Xcode to start it?
Thanks in advance!
Edit: Thanks to the answer of Răzvan Puiu below, i know now that this is because xCode puts the app as a debug version on my iPhone. This debug version can only run with xCode. After I tried it with a 'normal' app and not the example app of a plugin project, i even got this text shown if i tried to start the debug version without xCode:
So the solution is to run the app with:
flutter run --release
I believe it behaves like that because you don't have an Apple developer account. "Without enrolling in the Apple Developer Program, your app will only last for 7 days on your device. After that, you’ll have to re-deploy it to your device via Xcode. If you’re enrolled in the Apple Developer Program, you won’t have this inconvenience."
Yes
You can run flutter run --release and then select your physical device. However the app will remain on your phone for only 7 days unless you have the Apple dev account.
I've been developing a news app with Flutter and when I build and run it through Android Studio it launches fine, but when I try to launch the app by clicking on it on the home screen, it says "in iOS 14+, debug mode flutter apps can only be launched from Flutter tooling,IDEs ....."(Screenshot attatched). Can someone tell me as to how to get around this?
Apparently, this is a known issue of Flutter on iOS 14 for apps in debug mode, see this article on the Flutter website, and this GitHub issue. So for the time being, I believe your main workarounds are the following:
Always run the app from the host PC (using flutter run, IDE debug, etc.)
Build a release version of your app (instead of debug) and use that on your device, e.g. use flutter run --release
Use a device with iOS 13 or older
Use a simulator
If you want to use the app without being connected via usb
Open the ios folder on Xcode
Make sure your device is connected
Select Product from the menu bar -> Scheme -> Edit Scheme
Or simply use the shortcut: command + >
Step 3
Change the build configure to Release
Run the app from Xcode
Disconnect your device and you're good to go!
I just got back into iOS / WatchKit development after a ~8 year break. I'm having a really hard time making an app for the watch, because
Simulator is not helping because random things seem unsupported (most recent example being WCSession.transferFile, which apparently is a bug)
On device is not helping because the loop to get it to run on device is completely out of hand, and I was not able to get either logging or debugging to work when running on device. (My main problem is that if I do CMD R in Xcode with my Watch selected as target, it builds, and says running, but never launches the app. If I launch the app manually I find it's not the most recent version. I have to go and remove it from the watch, and re-add it, which then causes Xcode to not be able to run it anymore, which means I have to restart Xcode. What.)
So my question to more experienced devs is: what's your debug cycle when writing Apple Watch apps?
I'm running Xcode 12, watchOS 7.1, on Mac OS 10.15.7 (not Big Sur which may be some cause of issues)
Some steps that help for on device debugging:
To re-install the watch app, select the iPhone app in Xcode and build and run that. This will also re-build and re-install the watch app as needed.
Open the app manually on the watch
I still haven't figured out how to get a debugger or console, but for now my hack is to have a label on the watch that I use as my on device console.
This is almost certainly an Xcode 12 issue. At least since Xcode 12.5 my app has not worked with watch simulator (it can't connect to the phone simulator) and I get no debugger with a real device.
Using Xcode 12.3 seems to work.
I recently purchased an Apple developer's license so I can make apps using Swift
However, whenever I build my app, it takes about five minutes to load, and opens up the iOS simulator which is extremely slow.
How can I build just the app itself?
Thanks.
I had the same problem, and the solution is quite simple.
Don't close the iOS simulator, leave it open.
Just stop the app from running, and it will close the app within the simulator itself.
CommandR to run the app, Command. to close.
You did a "Build & Run" with an iOS Simulator device selected as a run destination.
Select a real iOS device in the run destinations list and B&R to it instead (or just Build rather than B&R).
Just press cmd+B to build without running simula.
Is it possible to have Xcode automatically launch an app on my iOS device from Xcode 4.6 without attaching its debugger to the app? I'm working on an automated build system, so manually launching the app is not an option.
I've found Run Without Building under the Product -> Perform Action menu, but that still attaches the debugger. I can edit the scheme to make Xcode wait until the app is launched manually before attaching the debugger, but that's basically the opposite of what I want.
If you want to launch an app from Xcode without launching the debugger, I would uncheck the “Debug executable” option in the Xcode scheme:
If you want to launch an app manually, you can:
Select your device in the "scheme" dropdown;
Build the app (don't run);
Open the organizer and go to the "devices" tab;
Drag your app from the "Products" folder in the main Xcode project navigator to the device in the organizer window and it will be installed; and
You can then run the app manually from the device at that point.
This process can be useful when diagnosing startup performance and you want to run the app on the device completely separate from Xcode (and the debugger, if you have a debug build).
xcode 6.3.1
unselect the debug execute, then you could run without debugging.
Just Build and run and once it launches press stop and open the app manually. It will then be the app you built but not connected.