After updating to Catalina 10.15.4 beta with Xcode 13.4 beta, which also updated Simulator to 13.4 (921.4).
The application compiles and runs correctly on a physically attached device, but no simulators of any devices can pass this stage.
I got the errors
Building for iOS, but the linked and embedded framework 'App.framework' was built for iOS Simulator.
or
Building for iOS Simulator, but the linked and embedded framework 'App.framework' was built for iOS.
How can I fix this?
Xcode 11.4 changed the way frameworks are linked and embedded, and you may experience issues switching between iOS devices and simulators. Flutter v1.15.3 and later will automatically migrate your Xcode project.
To get unstuck, follow the instructions below;
Quick fix (make your simulator work)
rm -rf ios/Flutter/App.framework
Official recommended Steps to migrate manually
From the Flutter app directory, open ios/Runner.xcworkspace in
Xcode.
In the Navigator pane, locate the Flutter group and remove App.framework and Flutter.framework.
In the Runner target build settings Build Phases > Link Binary With Libraries confirm App.framework and Flutter.framework are no longer present. Also confirm in Build Phases > Embed Frameworks.
Change the Runner target build settings Build Phases > Thin Binary script as follows:
/bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh"
embed
/bin/sh "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh"
thin
In the Runner target Build Settings > Other Linker Flags
(OTHER_LDFLAGS) add $(inherited) -framework Flutter
Hope it helps!
Select your Target from "TARGETS"
Select 'Build Settings'
Under 'Build Options' -> Set 'Validate Workspace' To 'YES'
After successfully building, set it back to 'NO'
Reason :
"In Xcode 12+, the default option for Validate Workspace is internally not set. We need to set it manually to avoid this kind of error. There is no problem in setting back to the default 'NO' option.
Xcode 11.4 changed the way frameworks are linked and embedded, which is causing issues switching between iOS devices and simulators.
Please follow official guide on how to migrate your project.
After several days trying to find a solution to test the Flutter app on iOS device, I finally found this:
flutter clean
flutter build ios
-Open xCode and run app on your device.
Updated to Xcode 11.4. Ios 13.4, Iphone X. App just fetches data using API.
App started on white screen and then finally crashes, both on simulator and device.
I followed the offical guide (I also rm -rf ios/Flutter/App.framework)
flutter.dev/docs/development/ios-project-migration.
I ran several times flutter clean
I also tried deleting Pods/ folder and Podfile.lock, then reinstalling using pod install in the ios folder.
As I am using async data I also added as 1st line in main()
WidgetsFlutterBinding.ensureInitialized();
No help, app did not started either simulator.
Then I removed ios/ and android/ folders. After that in project folder I ran command flutter create . that regenerates mentioned folders.
After this my app started fine both on simulator and on device.
I hope this would be help to others. NOTE!! if you have done any modifications manually to those folders please take backup or commit beforehand.
I have tried the solution on the official website of flutter but it didn't work for me, so I found a temporary solution which worked for me, but it took me some hard works:
Here is my example with project stuck_framework which is a fresh new project (first time run on the simulator)
I created 2 folders inside flutter project called
"ios_simulator" and "ios_real_device".
enter image description here
Now my first build was for the simulator, then I want to switch to a real device, I will move ios folder inside Flutter project to the "ios_simulator"
I open the project with visual studio code and run "flutter create ." and now I will choose a real device to rebuild the project ( if your simulator is online, please quit ).
enter image description here
Now I wait for the build finish and run on the real device without any errors. Now I have 2 ios project 1 for simulators and one for real devices.
Next time when I want to run on the simulator again, I just remove the current ios folder and copy the ios folder which I placed on "ios_simulator" back out to flutter project folder. Hope this help
Manually upgrading flutter to version 1.15 solve this issue as well. Running flutter version v1.15.17 helped me.
Also, you can switch to beta or dev channels by running flutter channel command but be sure you check your code against all BC changes...
In my case, it works only simulator(debug). if you want to deploy your app on the app store(release) i highly recommend you to upgrade flutter version using
flutter version v1.15.17
otherwise you would encounter crashed app with white screen.
just upgrade flutter version then all things work well
This error is caused by the Xcode 11.4 and can be resolved by Removing / Re-Embedding frameworks and adding a new Run Script Phase.
Under General -> "Frameworks, Libraries, and Embedded Content"
Delete the frameworks that are causing errors.
After deleting, re-embed the frameworks in the same location.
Under Build Phases add a new run script phase.
Select the "+" button in the "Build Phases" pane to create a "New Run Script Phase".
Confirm the script is the bottommost build phase, and configure its fields.
The Shell text field should read /bin/sh (which is the default value).
In the text-input area, enter the shell command rm -r "FRAMEWORK_DIRECTORY/YOUR_FRAMEWORK.framework/"
None of the other solutions here worked for me. In my case, the problem was fixed by searching my project for ONLY_ACTIVE_ARCH and changing them all to YES. I found my solution here:
https://developer.apple.com/forums/thread/656509
Will I be capable of submitting an app with Xcode 7.3.1 while on the macOS 10.12 beta? According to this post, it is possible to run Xcode 7 alongside macOS 10.12.
Yes, you can! But if you're tying to do this, you will find two problems.
no .app file provided in bundle
Build with Xcode 7.3.1 then upload using Xcode 8 [Beta]. This will allow you to upload the archive.
When trying to submit to the store you will be faced with this error message:
New apps and app updates must be built with the public (GM) versions of Xcode 6 or later, OS X, and tvOS SDK. Don't submit apps built with beta software including beta OS X builds.
This is because your archive contain the Sierra's mark! I just solved this problem yesterday.
When you archived your app, find your archive in the Organizer, and then:
"Show in finder";
"Show package contents";
In the "xx.xcarchive" file, find the "Products"-"Applications"-"xx.app"(xx is your app's name), "Show package contents" again;
Finally, you can see there has a file named"Info.plist", open it;
Edit the value with a key named "BuildMachineOSBuild", I just change it to "15F34"(it's "El Capitan 10.11.5" 's version);
After that, you can upload this archive use Xcode or Application Loader, whatever you want!
Decided to try it out myself. Both methods of exporting through Xcode and Application Launcher failed with an error stating there was no .app file provided in bundle. Best to stay away from the macOS 10.12 beta if you want to continue developing for iOS 9.
I have a xcode 6.x project in which i made small changes. Now i want to submit it to app store.
But none of the simulators are showing up.
i was using xcode 6.4 but then i download xcode 6.2 and it still doesn't work. How do archive it and submit it to appstore?
I cannot use latest xcode because the project is in swift so will have to make alot of changes, it's a big project.
This issue can happen if the width of the Xcode window is too narrow. Try resizing the window wider, and they should re-appear.
What are illegal configurations and how do I fix them?
I have 3:
Launch screens may not use instances of IBUIExitPlace Holder.
Launch screens may only have one top level object, which must be a UIView or a kind of UIViewController.
Launch screens may not use instances of IBUIStoryboardEntryPointIndicator.
I'm converting my Swift 2 code to Swift 1.2 so I can upload my app to the app store.
Thanks in advance!
I just stomped with the exact same issue.
I think you can reproduce the issue with the following steps:
Create a Launch Screen.storyboard using Xcode 7 beta 5
Open Xcode 6.4 and try to build the project, it should fail.
What I did to fix this was to delete the Launch Screen.storyboard created on XCode 7b5 and create a new one on XCode 6.4.
Please let me know if you try this solution!
Encountered the same issue. This issue is generally caused because of creating a Storyboard using XCode 7 and using the same Storyboard file in Xcode 6. Follow the below steps to solve the issue.
Delete the LaunchScreen storyboard created by Xcode 7.
Create a new LaunchScreen storyboard using Xcode 6.
Clean and Build.
If I want to Create project without storyboard in Xcode 4.3
and use only ARC feature from Xcode.
How can we create app without story board as we dont want Navigation controller,
in app and use addsubview as we use to code in earlier versions.
Does app coded in Xcode 4.3 can be deployed on iOS 4.0 ,iOS 4.3, or only works with iOS 5
Please let me know..
Thanks
To my strong dismay, Apple removed the "Use Storyboards" checkbox in Xcode 5. Every project gets created with a dreaded UIStoryboard. I wrote a tool that converts Xcode 4's project templates to Xcode 5, so you can once again create projects with or without storyboards. You can find it here on GitHub: https://github.com/jfahrenkrug/Xcode4templates
When you create a new project there is an option to "Use Storyboards". Don't tick that.
Do tick the "Use Automatic Reference Counting" box.
Apps developed in Xcode 4.3 can target platforms below 5.0, it's up to you to ensure that you include / exclude the appropriate features.