In theory, it should be possible to use previous Swift toolchains with new Xcode versions, so that you can continue to compiler your code before having to upgrade the Swift version. You can download toolchain version at https://swift.org/download.
However, while apps do compile after switching the toolchain in Xcode preferences and using Xcode 10.2 for the command line tools - running them results in this error on launch:
dyld: Symbol not found: _OBJC_CLASS_$__TtCs12_SwiftObject
Referenced from: ~/Library/Developer/CoreSimulator/Devices/CAAB28E5-9B4A-41A3-ADED-A481A62842BA/data/Containers/Bundle/Application/<Redacted>/Frameworks/PhoneNumberKit.framework/PhoneNumberKit
Expected in: /Library/Developer/Toolchains/swift-5.0.1-RELEASE.xctoolchain/usr/lib/swift/iphonesimulator/libswiftCore.dylib
in ~/Library/Developer/CoreSimulator/Devices/CAAB28E5-9B4A-41A3-ADED-A481A62842BA/data/Containers/Bundle/Application/<Redacted>/Frameworks/PhoneNumberKit.framework/PhoneNumberKit
There's some discussion around a similar error in previous Xcode betas, on GitHub, Apple forums, and elsewhere that suggest it's either and issue with Carthage or the beta - and possibly just the third-party lib I'm using itself.
Has anyone encountered this before? Is it possible to use old toolchains with newer Xcode versions?
Related
One of my XCFrameworks throws the following error when building with Xcode 13.3 on running on the M1 chip.
section __DATA/__bss has type zero-fill but non-zero file offset for architecture arm64
There is no error with the same project on Xcode 13.2.1 running on Monterey. Also no error with Intel chips running on any Xcode or macOS version.
Has anyone seen this issue yet and know of a potential solution?
I got this error in the first place because I was using bogo's arm64-to-sim tool on Github to patch some of my existing frameworks to run on a simulator on an M1 chip. I updated to the latest version of the tool that fixes this issue, and it resolved. The fix is here: https://github.com/bogo/arm64-to-sim/pull/8
This question already has answers here:
ld: library not found for -lstdc++.6
(7 answers)
Closed 4 years ago.
When I want to build my app in Xcode 10.0, I'm getting this error. How I can solve this issue ?
library not found for -lstdc++.6.0.9
Mac OS version : High Sierra 10.13.6
iOS iPad version : 12.0
Xcode version : 10.0
Regards,
Tuğçe.
From the Xcode 10 release notes,
Building with libstdc++ was deprecated with Xcode 8 and is not supported in Xcode 10 when targeting iOS. C++ projects must now migrate to libc++ and are recommended to set a deployment target of macOS 10.9 or later, or iOS 7 or later. Besides changing the C++ Standard Library build setting, developers should audit hard-coded linker flags and target dependencies to remove references to libstdc++ (including -lstdc++, -lstdc++.6.0.9, libstdc++.6.0.9.tbd, and libstdc++.6.0.9.dylib). Project dependencies such as static archives that were built against libstdc++ will also need to be rebuilt against libc++. (40885260)
I am having problems with an app I've been working on for a while. Everything was fine until went mad and updated Xcode to 9.4 (previously 9.3).
I'm using a third party framework compiled on swift 4.0.3. I worked perfectly, but after the update it wouldn't compile (can't build the framework compiled on 4.0.3 with 4.1). I downloaded and installed the Swift 4.0.3 Release Toolchain and i'm able to build with no errors.
However, when I run the target on the device (iOS 9.0 ipad) it crashes with dyld`dyld_fatal_error:
dyld`dyld_fatal_error:
0x1fe9008c <+0>: trap
0x1fe90090 <+4>: nop
The console outputs this:
dyld: Library not loaded: #rpath/libswiftCore.dylib
Referenced from: /private/var/containers/Bundle/Application/2E966F50-67E3-4250-858C-382319CD6274/myApp.app/Frameworks/myFramework.framework/myFramework Reason: Incompatible library version: myFramework requires version
1.0.0 or later, but libswiftCore.dylib provides version 0.0.0
Some Facts:
The Framework is in Embedded Binaries and Linked Frameworks and Libraries under General and Link Binaries with Libraries and Embed Frameworks under Build Phases.
This app need's to deploy on iOS 9.0 and the Deployment target is set accordingly.
I installed Xcode 9.3 again, but I had the same problem using the 4.0.3 toolchain.
My suspicions:
Can the Toolchain be corrupted in some way? I installed Swift 4.0.3 Release 2017-12-05 (a)
Even though I am working with the 4.0 toolchain, I can only choose from 4.1 and 3.3 under Swift Compiler in Build Settings. I imagine this is overwritten, but not sure.
My main concern is that even though the deployment target is set to iOS 9.0, under the BASE SDK is set to 11.3, and can't choose another. I can't find the 9.0 SDK on the internet. Could this be the problem?
Also, all of my certificates are valid and ok.
Thanks in advance, I'll add edits every time I find something new.
Well, I didn't receive any help here, but just in case anyone needs to know, the only way I managed to solve this was asking for an updated version of the framework we are using. It appears this is a compatibility problem that has no solution.
Following #Danf instructions solved for me.
For the first time I was able to compile my app in Xcode 7 (failed in beta 4 and 5). So, thats good progress I guess.
However, when i load my app on my iPhone 6, iOS 8.4.1, it crashed in the debugger with the following message:
dyld: Symbol not found: _NSArray0
Referenced from: /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq
Expected in: /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
in /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq
Is this something to do with the order of the libraries being linked? Look forward to some advise.
Thanks!
I fixed it by putting this in the podfile. platform :ios, '8.4'
No need to update your device to iOS 9 and lose out on 8.4 testing.
I had the same error and I fixed.
I removed CoreFoundation.framework and Add again with Status "Optional" and works.
If anybody else got this while running unit tests do the following:
Select unit tests target
Go to Build Settings
Search for 'Deployment Target'
Change Deployment Target version to your project's deployment target
That's it!
I also had this problem and I fixed it by adding framework CoreFoundation.framework to Build Settings.
This as a problem on iOS8 build with the new XCODE release, Please remove CoreFoundation.framework and Add it again with Status of "Optional".
I used to have the same error during compilation of a mac os project after updating the Xcode for 7.0 GM version (7A218). Xcode 7 has the 10.11 sdk in it only (you could check that in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs, where it's a MacOSX10.11.sdk).
At compilation time the xcode will link the frameworks from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks, but at runtime from /System/Library/Frameworks/ as I guess.
I have OS X 10.10.5 (14F27) on mac. Either I have my static library that I've built by xcode 7 (MacOSX10.11.sdk as you remember from earlier), which I've linked to my project after. After running I got the runtime error as
dyld: Symbol not found: _NSArray0
I think it's because the library has been compiled with CoreFoundation.framework from mac os sdk 10.11, but at runtime was linked to CoreFoundation.framework from /System/Library/Frameworks/ where version of which is 10.10 (as OS version).
How I fixed this. Friend of mine has xcode 6 yet, I took mac os sdk 10.10 from there (as you remember in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs, name is MacOSX10.10.sdk) and added it to Xcode of mine. Then I rebuilt my static library with 10.10 sdk (you could compile from cli with '-sdk macosx10.10' parameter or set build sdk in Build Settings => Base SDK). After the problem has been solved.
I assume that for the iOS you could apply the same strategy.
I experienced the same exact crash running Xcode 7.0 beta 6 on a device with the first iOS 9 beta installed, the crash however was not occurring while using the simulator.
After updating my iPhone to iOS 9 beta 5, the crash stopped.
For the first time I was able to compile my app in Xcode 7 (failed in beta 4 and 5). So, thats good progress I guess.
However, when i load my app on my iPhone 6, iOS 8.4.1, it crashed in the debugger with the following message:
dyld: Symbol not found: _NSArray0
Referenced from: /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq
Expected in: /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
in /private/var/mobile/Containers/Bundle/Application/0294DF62-AE80-485D-BB11-8C3A5D39777D/Boxtiq.app/Boxtiq
Is this something to do with the order of the libraries being linked? Look forward to some advise.
Thanks!
I fixed it by putting this in the podfile. platform :ios, '8.4'
No need to update your device to iOS 9 and lose out on 8.4 testing.
I had the same error and I fixed.
I removed CoreFoundation.framework and Add again with Status "Optional" and works.
If anybody else got this while running unit tests do the following:
Select unit tests target
Go to Build Settings
Search for 'Deployment Target'
Change Deployment Target version to your project's deployment target
That's it!
I also had this problem and I fixed it by adding framework CoreFoundation.framework to Build Settings.
This as a problem on iOS8 build with the new XCODE release, Please remove CoreFoundation.framework and Add it again with Status of "Optional".
I used to have the same error during compilation of a mac os project after updating the Xcode for 7.0 GM version (7A218). Xcode 7 has the 10.11 sdk in it only (you could check that in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs, where it's a MacOSX10.11.sdk).
At compilation time the xcode will link the frameworks from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks, but at runtime from /System/Library/Frameworks/ as I guess.
I have OS X 10.10.5 (14F27) on mac. Either I have my static library that I've built by xcode 7 (MacOSX10.11.sdk as you remember from earlier), which I've linked to my project after. After running I got the runtime error as
dyld: Symbol not found: _NSArray0
I think it's because the library has been compiled with CoreFoundation.framework from mac os sdk 10.11, but at runtime was linked to CoreFoundation.framework from /System/Library/Frameworks/ where version of which is 10.10 (as OS version).
How I fixed this. Friend of mine has xcode 6 yet, I took mac os sdk 10.10 from there (as you remember in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs, name is MacOSX10.10.sdk) and added it to Xcode of mine. Then I rebuilt my static library with 10.10 sdk (you could compile from cli with '-sdk macosx10.10' parameter or set build sdk in Build Settings => Base SDK). After the problem has been solved.
I assume that for the iOS you could apply the same strategy.
I experienced the same exact crash running Xcode 7.0 beta 6 on a device with the first iOS 9 beta installed, the crash however was not occurring while using the simulator.
After updating my iPhone to iOS 9 beta 5, the crash stopped.