Catalyst: UIReferenceLibraryViewController missing in UIKit? - xcode

In my iOS app I use UIReferenceLibraryViewController (UIKit) to lookup words in the dictionary. Works fine. When building for Catalyst I get:
Showing Recent Issues
Undefined symbol: _OBJC_CLASS_$_UIReferenceLibraryViewController
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_UIReferenceLibraryViewController", referenced from:
objc-class-ref in WoordvinderViewController.o
objc-class-ref in AnagramViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Is UIReferenceLibraryViewController just missing from the UIKit framework, or am I missing something?
Apple's code level support tells me to report a bug... eh.. feedback in the bug reporter, but the bug report goes unacknowledged. Xcode 12 beta did not fix it, nor did Xcode 12 release.

The class is not implemented for Catalyst yet despite the docs saying it's supported. I even checked the macOS port of UIKit at /System/iOSSupport/System/Library/PrivateFrameworks/UIKitCore.framework/Versions/A/UIKitCore and found no reference to the class.
I guess the only solution, for now, is to create a macOS plugin that shows the native lookup popover by calling NSView.showDefinition().

Related

Xcode build failure due to Undefined symbol: __swift_FORCE_LOAD_$_swiftFileProvider

Building failed with Xcode 13beta for React Native 0.64.2 project. It is on macOS Big Sur. The detail of error is:
Undefined symbols for architecture x86_64:
"__swift_FORCE_LOAD_$_swiftFileProvider", referenced from:
__swift_FORCE_LOAD_$_swiftFileProvider_$_YogaKit in libYogaKit.a(YGLayoutExtensions.o)
(maybe you meant: __swift_FORCE_LOAD_$_swiftFileProvider_$_YogaKit)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
What configuration change is needed to eliminate the error?
Create an empty swift file (####.swift) from Xcode in the main project which located Appdelegate.h file. This worked for my React Native project after Xcode version 13 update.
Try creating a new Swift empty file (it's not necessary to create a Bridging Header).
Adding libswiftWebKit.tbd into Link Binary With Libraries build phase in XCode helped to solve the problem:
enter image description here

What files do i need to link to my xcode project (built in gamemaker) to make it work?

I have seen similar issues on here which has led me to believe i need to link binary files with library. However, i cannot figure out which ones i need, can any one help me with this ? I have macOS catalina 10.15.3, xcode 10.3, gamemaker 2.2.5.481 and runtime v2.2.5.378
here is my error message:
Undefined symbols for architecture x86_64:
"___isPlatformVersionAtLeast", referenced from:
UpdateIOSControllers() in libyoyo_interpreted.a(IOSGamepad.o)
_SetHomeIndicatorDeferOption in libyoyo_interpreted.a(RunnerViewController.o)
-[RunnerViewController viewDidLoad] in libyoyo_interpreted.a(RunnerViewController.o)
Achievement_TeamPlayerID() in libyoyo_interpreted.a(YoYo_GameCenter.o)
Achievement_GamePlayerID() in libyoyo_interpreted.a(YoYo_GameCenter.o)
PB_Challenges(HTTP_REQ_CONTEXT*, void*, int*) in libyoyo_interpreted.a(YoYo_GameCenter.o)
PB_PlayerPic(HTTP_REQ_CONTEXT*, void*, int*) in libyoyo_interpreted.a(YoYo_GameCenter.o)
...
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Bluetooth gamepad support is added in iOS 13, which requires XCode 11 to work; you probably only need to upgrade xcode.
Reference:
https://forums.developer.apple.com/thread/123003

Objc-class-ref error in couchbase lite in iOS cocoapods xcode 9

Integrating CouchbaseLite in iOS application causing error through cocoapods . Here is error i am getting :
Undefined symbols for architecture x86_64: “OBJC_CLASS$_CBLManager”,
referenced from: objc-class-ref in ViewController.o ld: symbol(s) not
found for architecture x86_64 clang: error: linker command failed with
exit code 1 (use -v to see invocation)
I also raised issue on couchbase-lite forum :
https://forums.couchbase.com/t/bjc-class-ref-error-in-couchbase-lite-in-ios-cocoapods-xcode-9/14744?u=st.shubh.tiwari
The “Other Linker” flags was set to “-ObjC”. Change that to $(inherited). That will ensure that Cocoapods is able to include the appropriate flags. Otherwise your cocoa pods install won’t go through fine.
This really helps me to resolve my issue . Big Thanks to CouchBase community.

Plugin issue (game centre and storekit)?

I was trying to deploy a game to an iOS device,these error shows up. Now is this because the plugins need to be upgraded?
Undefined symbols for architecture armv7:
"UnityGetGLViewController()", referenced from:
+[GameCenterManager showViewControllerModallyInWrapper:] in libGameCenterPlugin.a(GameCenterManager.o)
+[GameCenterManager dismissWrappedController:] in libGameCenterPlugin.a(GameCenterManager.o)
+[GameCenterManager unityViewController] in libGameCenterPlugin.a(GameCenterManager.o)
-[StoreKitManager displayStoreWithProductId:] in libStoreKit.a(StoreKitManager.o)
___45-[StoreKitManager displayStoreWithProductId:]_block_invoke in libStoreKit.a(StoreKitManager.o)
-[StoreKitManager productViewControllerDidFinish:] in libStoreKit.a(StoreKitManager.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
We need solve this problem your unity version , xcode version. update please.
Now, just tell you symbol(s) not found for architecture armv7 issue is generation in old plugin

Xcode5, project deploys to device but get's a build error for simulator

When I deploy my app to my phone via xcode5 it works find, however when I try to deploy it to one of the simulators I get the following errors.
ld: warning: ignoring file /Users/benpearce/Downloads/MapKit.framework/MapKit, missing required architecture i386 in file /Users/benpearce/Downloads/MapKit.framework/MapKit (2 slices)
Undefined symbols for architecture i386:
"_MKCoordinateRegionMakeWithDistance", referenced from:
-[MapKitView createViewWithOptions:] in MapKit.o
"_OBJC_CLASS_$_MKMapView", referenced from:
objc-class-ref in MapKit.o
"_OBJC_CLASS_$_MKPinAnnotationView", referenced from:
objc-class-ref in MapKit.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Can anyone see what's going on?
The MapKit framework is missing a binary for the Simulator which is i386. The Simulator is a Mac application and needs a code resource compiled for the i386 Intel processor. Where did you get MapKit?
If this is Apple's MapKit you should just be including the framework provided with Xcode. It is added in Xcode by selecting the Project, Build Phases, Link Binaries with Libraries, +, select MapKit.framework.
Also the framework in in your Downloads directory, why?

Resources