I want to make my iOS8 app compatible with iOS 7.0 but, it gives the following error log.
By referring previous questions, I have tried re-adding certain frameworks and making them optional to no avail. Please help me here.
dyld: Symbol not found: _OBJC_CLASS_$_CIKernel
Referenced from: /var/mobile/Applications/3F71E632-C303-4C7E-9DA5-BE70B8D2C8FD/xxxxx.app/xxxxx
Expected in: /System/Library/Frameworks/CoreImage.framework/CoreImage
in /var/mobile/Applications/3F71E632-C303-4C7E-9DA5-BE70B8D2C8FD/xxxxx.app/xxxxx
Try setting CoreImage.framework as optional in the Linked Frameworks and Libraries section under General Tab.
Related
Hi My code was running perfectly in xcode 7.x.x
As soon as i updated my xcode i am getting this issue please give me the solution for this.
Details :
dyld: Symbol not found: _kABPersonAddressCityKey Referenced from:
/var/containers/Bundle/Application/0A16B18D-CB72-4FCA-94F7-422AFD1411AD/ABCD.app/ABCD
Expected in: /System/Library/Frameworks/PassKit.framework/PassKit in
/var/containers/Bundle/Application/0A16B18D-CB72-4FCA-94F7-422AFD1411AD/ABCD.app/ABCD
Add PassKit.framework to your Link Binary With Libraries in your Build Phases and set its Status to Optional
There are two things that might fix your problem:
1- Open your target -> Build Phases -> Link Binary With Libraries -> Add AddressBook.framework
2-
AddressBook framework was deprecated in iOS 9. Apparently your app will crash if you compile the code on Xcode 8 and run on a iOS 9 or lower device.
I recommend migrating to Contacts framework and/or have preprocessor macros that don't include the AddressBook framework code when built on iOS 10.
Source: https://github.com/OceanLabs/iOS-Print-SDK/issues/257
Paul Senabre's solution worked for me, thank you, thank you, thank you! This has been driving me nuts!
Adding PassKit.framework solved but problem, but make sure to add it for all of your targets! When you add it, it only affects your current target. BTW, my app with a target of iOS-8 ran fine with iOS-10 in Xcode-8, but would crash with anything previous to iOS-10.
it took me some time to solve this so I thought if someone ever searches for it also they might find the solution here.
The problem occurred when I had a framework called CoreUI. This worked fine on my iPhone and iPad but it crashes on the simulator with the following error to the terminal
dyld: Symbol not found: _OBJC_CLASS_$_CUICatalog
Referenced from: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/UIKit.framework/UIKit
Expected in: /Users/sareninden/Library/Developer/Xcode/DerivedData/Treinplanner-bcfwuvntuwetsmavibxtvaiczpfg/Build/Products/Debug-iphonesimulator/CoreUI.framework/CoreUI
in /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/UIKit.framework/UIKit
After looking through all the build settings and finding nothing I tried making an empty project with a framework called CoreUI. Without any logic added in it, it crashed with the same error.
It appeared that in the simulator CoreUI is also a framework name used by Apple. Even though it was a swift only framework this still causes conflicts.
This is how DYLD_FRAMEWORK_PATH works. Because you have your own CoreUI.framework in your DYLD_FRAMEWORK_PATH, that one is used instead of the system one to satisfy the linkage from UIKit.framework.
Don't pick framework names that are used by system frameworks, ie:
ls $(xcrun --sdk iphonesimulator --show-sdk-path)/System/Library/*Frameworks
The solution is to not use module names (for your app or framework) that Apple uses. I found a list of frameworks here (https://github.com/jonathanpenn/ui-auto-monkey/issues/8). I do not know if it is complete but it is a good start.
I am trying to integrate Google sign in into my iOS app. I have followed instructions mentioned by Google.
I have added SafariService.framework as well.
Still I am getting this error:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_SFSafariViewController", referenced from:
objc-class-ref in GoogleSignIn(GIDSignIn.o)
How to fix this issue?
Any ideas?
Thanks
I had the same issue. But my problem was i haven't included the SafariServices framework.
I added it as required and it worked fine.
Make sure you have the next configuration:
Disabled BITE_CODE
Added all needed frameworks
The linker flag -ObjC (not -Objc)
Added the needed url types
Imported GoogleSignIn.h
GoogleServices-Info.plist imported in your target
In my configuration i'm using 7.0 as deployment target
Hope it helps.
Regards
Since the SafariServices framework is only available on iOS9 and above, is it possible that you are trying to run this on a device with iOS lower than that? If so, is it possible that when you added the framework, you added it as required (making it impossible for the app to run on older versions of iOS)? Try setting it as optional (attaching an image to better explain what I mean).
i'm getting this error when running my Xcode project in simulator
dyld: Symbol not found: _UP_ACAccountCredential_alloc_initWithOAuth2Token_refreshToken_expiryDate_
Referenced from: /Users/apple/Library/Developer/CoreSimulator/Devices/EE487FF8-61D9-4F6D-9B37-68B59E6EFD38/data/Containers/Bundle/Application/DA009D88-B649-449E-B53F-107A97D29365/sling.app/sling
Expected in: flat namespace
in /Users/apple/Library/Developer/CoreSimulator/Devices/EE487FF8-61D9-4F6D-9B37-68B59E6EFD38/data/Containers/Bundle/Application/DA009D88-B649-449E-B53F-107A97D29365/sling.app/sling
(lldb)
Simulator goes black screen.
Thanks for any help, i'm Xcode newbie, it's my first day with it.
Looking at the documentation for the ACAccountCredential class it may be an issue that you have not added the Accounts framework to the XCode project. This can be added by going to the Build Phases->Link Binary With Libraries pane. Click the '+' button and search for Accounts and add it.
The issue was u3dxt plugin, works fine when removed.
I have an application that works perfectly with iOS4 and iOS5. It uses a statically compiled version of the zeromq library, targeted for ARM. Apple denied my application because they claim it crashes under iOS 6 (yet unreleased..wth?)
After trying it with the iOS 6 GM I can confirm it does crash when we initialize the ZeroMQ socket. Here is the crash messages:
dyld: lazy symbol binding failed: Symbol not found: ___sync_fetch_and_add_4
Referenced from: /var/mobile/Applications/00EDEEDA-0068-4061-9188-01D627F9A6D6/OpenAir.app/OpenAir
Expected in: /usr/lib/libSystem.B.dylib
dyld: Symbol not found: ___sync_fetch_and_add_4
Referenced from: /var/mobile/Applications/00EDEEDA-0068-4061-9188-01D627F9A6D6/OpenAir.app/OpenAir
Expected in: /usr/lib/libSystem.B.dylib
I understand the __sync_fetch_add_4 symbol is a compiler atomic builtin. I know that ZeroMQ is using mutexes for it's internal locking. I have been searching everywhere to try to figure out what changed in iOS6 that could cause these symbols not to be present.
Using Xcode 4.5 and iOS6 GM, the library will not even compile with the same type of message:
Undefined symbols for architecture armv7:
"___sync_fetch_and_add_4", referenced from:
zmq::socket_base_t::unregister_session(std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> > const&)in libzmq.a(libzmq_la-socket_base.o)
Is there a way to disable atomic builtins in the Apple compilers to try to bypass this problem altogether?
Make sure you aren't targeting any iOS below 4.3. Same goes for your static library, you will need to rebuild these. Also, make sure to remove armv6 from Archs and add armv7s is it does not exist.
After upgrading to Xcode 4.5, I tried everything for 2 days, and nothing worked. I finally gave up and went back to using Xcode 4.2.1
open -a /Developer/Applications/Xcode.app
Just to clarify. I've run my app on iOS 6 by building using the iOS 5 SDK. so unless you need iOS 6 functionality immediately, that works.
It shouldn't really be necessary to downgrade to an early version of iOS. I think the key is to use the extra bindings that are available for C and objective C development:
http://czmq.zeromq.org/
http://www.zeromq.org/bindings:objc
I used the czmq ones and can confirm these build with xcode in an iOS 6 project. I spent some time trying to get these to work as there's not much documentation on using them with iOS SDKs, but found the easiest method was to:
Download zeromq from http://download.zeromq.org/zeromq-3.2.2.tar.gz, extract, configure and build from the command line.
Download czmq from the link above and extract.
Import the src and include paths from the above into an xcode project.
Add -lstdc++ to the 'Other Linker Flags' section under 'Build Settings' for your target project
Import "czmq.h"
The libraries should successfully link together, then you should be good to go!