Xcode Error: Could not instantiate class named _UIScrollViewLayoutGuide - xcode

I am running my Xcode project (Xcode 11) on an iPhone 4S running iOS 9 and I am getting the following error:
Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named _UIScrollViewLayoutGuide'
I have tried looking up solutions to this error but could not find any. My code has installed all constraints and am suspecting it is because I am using the Interface Builder to create the scroll view.
What is odd is that other scroll views in the app are working fine, but this one keeps giving me this error… Any way to solve it?

It seems that I have found an answer! I am unsure why Xcode did not flag the error in the first place. With the new Xcode support for iOS 13, ScrollView Content Layout Guides are automatically enabled. In iOS versions below iOS 11, there is no Content Layout Guide attribute.
I disabled the Content Layout Guides by selecting the Scroll View, going to the Size Inspector and deselecting 'Content Layout Guides' at the bottom of the first section.
This fixed my issue!

Related

Google Sign-In for iOS using Xamarin throws exception logs point to podfile

Trying to implement the Google Sign-In for IOS in a Xamarin project. Right on the Google page where it generates your GoogleService-Info.plist file, it says, "Insure you have CocoaPods installed and configured for your project. In you Podfile, include the following: pod 'Google/SignIn'".
And sure enough, the log on the Mac shows a similar error when going through the initial configuration.
But, I can't find anything that really tells me how to add a "Podfile" to a Xamarin IOS project (from within Visual Studio 2017, running on Windows 10).
So, when it comes time to actually click the Sign-In with Google button, in an IOS 10.3 IPhone 6 simulator, it throws an exception,
"Foundation.MonoTouchException: Objective-C exception thrown. Name:
NSInvalidArgumentException Reason: -[__NSCFString
countByEnumeratingWithState:objects:count:]: unrecognized selector
sent to instance 0x608000047200".
I can only hope it is really because of a missing component that the Podfile is supposed to resolve.
Saw a sample from a year ago that supposedly worked, but with what seems to be current right now, I can't get it to.
Update:
The sample I am trying to use, creates a custom class for the View so it can implement a custom Renderer, and a custom class for the page, again, so it can implement a custom Renderer. The View Renderer simply does:
signInButton = new SignInButton();
signInButton.Style = ButtonStyle.Wide;
signInButton.ColorScheme = ButtonColorScheme.Dark;
SetNativeControl(signInButton);
The Google button shows up, but when you click, you get the exception listed above.
A recent update to Xamarin required an update to XCode. With the update to XCode 9,the problem went away, and Google authorization is working.

Xamarin Forms 2.3.3.175 Scroll View Layer exceeds max. dimensions supported by the GPU

After upgrading Forms from 2.3.2.127 my app began to crash. After downgrading the Forms to 2.3.2.127 the issue went away, and I did try 2.3.3.193 and the issue happens there as well.
I have included a link to a PCL test app that will recreate this issue if anyone has any idea as to what I could be doing wrong or some type of workaround that would be great.
Once you start the app you will notice the tab page shows up oddly, if you navigate to the menu and select any of the items the app will crash when it attempts to load that page and render the scroll view. You will also see this exception thrown java.lang.IllegalStateException: Unable to create layer for ScrollViewRenderer
PCL test app zip

Xamarin iOs Build failed : Storyboards

It has been a month that I can't build my Xamarin iOs project. This seemed to have started after I updated to the new Xcode for the free provisioning. Since then, I tried finding a solution to this problem, but I haven't seem to find one.
When building the application, Xamarin Studio prompt me with an error that only indicates the name of my storyboard without any description. (The build action used for my storyboard is InterfaceDefinition which is the default one I guess)
Xamarin Studio also opens the Storyboard when the build failed.
I tried to open the storyboard in Xcode and everything went fine. So I really don't understand what is happening with my storyboards.
I even tried to open it with Visual Studio and the build failed but with no error.
Any help would be welcomed !
Thank you in advance :)
I got the same error.
I found the problem. In my storyboard, I added a tableview with static cell. => this caused the error.
Static table views are only valid when embedded in UITableViewController instances
Just changed my tableview to dynamic Prototype and it worked.
One of the cause can be using same storyboard identifier for two view controllers. I faced this error and was able to detect it by opening storyboard file in Xcode.
Having the same StoryBoard.Id property set on different UIViewControllers is another cause.

iOS 8 - Swift - Xcode 6 Beta - working without interface builder (no nibs and no storyboard)

I have been searching a lot in the inter webs and Stackoverflow. Unfortunately there doesn't seem to be much info around the new Xcode version, iOS 8 specifically with Swift and working without the Interface Builder.
The Templates to choose from as a starting point now does not have the option to start with an empty application. The least setup you have is to take the single view application, which already gives you the ViewController and a basic Storyboard.
I hate storyboards and I hate nibs. I want to do everything in code. I tried to delete the storyboard file, instantiate the window, set the rootViewController and make it visible just like in the good old days. the ViewController initializes without nib and bundle.
The result is this a SIGABRT with this error:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'Main' in bundle NSBundle </Users/[username]/Library/Developer/CoreSimulator/Devices/BC38B690-D30E-44FB-93B1-AB861D03B414/data/Containers/Bundle/Application/B6C160C8-67E1-4A74-9F81-55D097262050/blabla.app> (loaded)'
I sure hope that I will still be able to do UI without Interface Builder. Anyone has an idea on how to progress? I remember I was able to use an empty application with the previous Beta versions of Xcode 6.
In my opinion storyBoards are awesome. They make the development cycle easy and quick. But if you do not want them you can create a Single View Application template.
Delete the storyBoard and Follow these steps
1) Go to Your Target
2) Deployment Info
3) Main Interface -> Delete Main and keep field empty
It will not load a storyboard or any view. Now it's your responsibility to load Window and create rootViewControllers and views programmatically
The method outlined by codester is a good solution, but (in Xcode 6.0.1) the final step - deleting "Main" from the Main Interface section - would not work for me; I would delete the string, but as soon as I navigated away from that page or tried to run the app, the field would be repopulated with "Main". I ended up having to manually delete the "UIMainStoryboardFile" key/value entry in the applications Info.plist.

Could not instantiate class named UIRefreshControl Xcode

I am building a RSS feed on a tableview. When i run the app, on my iPhone could run smoothly while in ipad, it crashed and showed "Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named UIRefreshControl'"
I tried to run the app on my ipad simulator, it also could run smoothly. May I know what is the problem for that?
Thanks
UIRefreshControl only exists on iOS 6. So if your iPad is running 5.1.1, you won't be able to use UIRefreshControl, because UIRefreshControl did not exist in iOS 5.1.1. So when the nib decoding happens, the decoder finds "UIRefreshControl", it doesn't know what to do with it, and it crashes.
In your storyboard, click on the tableview and go to the Attribute Inspector. Under the section "TableView Controller" there is a selection window for "Refreshing" that can be set to disabled. When I built for my iPad-1, running iOS 5.1 I got an empty tableView instead of the error, 'Could not instantiate class named UIRefreshControl'. This was to be expected since I haven't populated the device with files to select, yet.

Resources