admin管理员组文章数量:1403452
Our project supports iOS 12, and we use libswift_Concurrency.dylib
for a specific feature.
After switching to Xcode 16 for building, we noticed that the load path for libswift_Concurrency.dylib
changed to /usr/lib/swift/libswift_Concurrency.dylib
(compatibility version 1.0.0, current version 0.0.0, weak).
This causes a critical issue: when the app launches on iOS 14, it fails to load the library because iOS 14 does not include libswift_Concurrency.dylib
at /usr/lib/swift/
.
Consequently, when invoking methods related to the library (e.g., Task
, async
, await
), the app crashes due to unresolved symbols. The crash stack trace includes:
SWITT::ResoLveAsSymbolicketerence: operator swift: Demange: symbolicreterencekina, swift:: Demange: Directness, int, void const + 126
swiTt::Demange::Demanger:.demangesymbolicketerenceunstghed char) + 408
swITt.:Demange..Demanger..demangesymbolicketerenceunstghed char) + 200
SWITT:.DemangLe::Demanger:.aemangtelypeTvm:stringket, sta::.TunctIOn<SWITT:.DemangLe::Node~SWITT::Demangte::ymbol1CReterencekina, SWITT::Demangue::DIrectness, Int, vola const)) + 200
swift_getTypeByMangledNameImp1(swift: :MetadataRequest, 11vm::StringRef, void const* const*, std:: 1:: function<swift:: TargetMetadata<swift:: InProcess> const*(unsigned int, unsigned int)>, std::_ 1:: function<swift:
argetWitnessTable<swift:: InProcess> const*(swift: :TargetMetadata<swift:: InProcess> const*, unsigned int) >) + 480
swift:: swift_getTypeByMangledName(swift::MetadataRequest, Ilvm::StringRef, void const* const*, std::_1:: function‹swift:: TargetMetadata‹swift:: InProcess> const*(unsigned int, unsigned int)>, std::_1:: function<swi
t:: largetwitnesslable<swift::lnProcess> constswift::largetmetadata<swift::InProcess> const, unsigned int> + 604
swift getlypebymangLedNamelncontext + 148
Additionally, we observed that setting the IPHONEOS_DEPLOYMENT_TARGET
to iOS 13 changes the load path of libswift_Concurrency.dylib
to @rpath/libswift_Concurrency.dylib
, which resolves the crash because the library is correctly loaded from xxx.app/Frameworks/
.
However, our app must support iOS 12, so this workaround is not viable.
Key Notes:
- This issue only occurs in Xcode 16; it works as expected in Xcode 15.
- We need a solution to maintain iOS 12 support while avoiding the library load path conflict on iOS 14. How can we resolve this compatibility issue?
Our project supports iOS 12, and we use libswift_Concurrency.dylib
for a specific feature.
After switching to Xcode 16 for building, we noticed that the load path for libswift_Concurrency.dylib
changed to /usr/lib/swift/libswift_Concurrency.dylib
(compatibility version 1.0.0, current version 0.0.0, weak).
This causes a critical issue: when the app launches on iOS 14, it fails to load the library because iOS 14 does not include libswift_Concurrency.dylib
at /usr/lib/swift/
.
Consequently, when invoking methods related to the library (e.g., Task
, async
, await
), the app crashes due to unresolved symbols. The crash stack trace includes:
SWITT::ResoLveAsSymbolicketerence: operator swift: Demange: symbolicreterencekina, swift:: Demange: Directness, int, void const + 126
swiTt::Demange::Demanger:.demangesymbolicketerenceunstghed char) + 408
swITt.:Demange..Demanger..demangesymbolicketerenceunstghed char) + 200
SWITT:.DemangLe::Demanger:.aemangtelypeTvm:stringket, sta::.TunctIOn<SWITT:.DemangLe::Node~SWITT::Demangte::ymbol1CReterencekina, SWITT::Demangue::DIrectness, Int, vola const)) + 200
swift_getTypeByMangledNameImp1(swift: :MetadataRequest, 11vm::StringRef, void const* const*, std:: 1:: function<swift:: TargetMetadata<swift:: InProcess> const*(unsigned int, unsigned int)>, std::_ 1:: function<swift:
argetWitnessTable<swift:: InProcess> const*(swift: :TargetMetadata<swift:: InProcess> const*, unsigned int) >) + 480
swift:: swift_getTypeByMangledName(swift::MetadataRequest, Ilvm::StringRef, void const* const*, std::_1:: function‹swift:: TargetMetadata‹swift:: InProcess> const*(unsigned int, unsigned int)>, std::_1:: function<swi
t:: largetwitnesslable<swift::lnProcess> constswift::largetmetadata<swift::InProcess> const, unsigned int> + 604
swift getlypebymangLedNamelncontext + 148
Additionally, we observed that setting the IPHONEOS_DEPLOYMENT_TARGET
to iOS 13 changes the load path of libswift_Concurrency.dylib
to @rpath/libswift_Concurrency.dylib
, which resolves the crash because the library is correctly loaded from xxx.app/Frameworks/
.
However, our app must support iOS 12, so this workaround is not viable.
Key Notes:
- This issue only occurs in Xcode 16; it works as expected in Xcode 15.
- We need a solution to maintain iOS 12 support while avoiding the library load path conflict on iOS 14. How can we resolve this compatibility issue?
- You should begin dropping iOS 12, Xcode 16 will be required next month and iOS 12 is no longer supported. – lorem ipsum Commented Mar 20 at 11:22
- Is there really no way to support iOS 12 anymore? Xcode 16 doesn't explicitly state that it doesn't support iOS 12 either. – user3910365 Commented Mar 20 at 11:57
- Looks like iOS 15 will be the minimum next month. – lorem ipsum Commented Mar 20 at 12:07
1 Answer
Reset to default 0Xcode 15 supports iOS 12-17
https://developer.apple/documentation/xcode-release-notes/xcode-15-release-notes
Xcode 16 supports iOS 15-18
https://developer.apple/documentation/xcode-release-notes/xcode-16-release-notes
In April 2025 iOS 18 SDK will be required, meaning that all apps will have to be built with Xcode 16.
https://developer.apple/ios/submit/
Apple is dropping submissions for apps that support iOS 14 and below.
本文标签:
版权声明:本文标题:ios - When building the project with Xcode 16.2, the app crashes due to an incorrect load path for the libswift_Concurrency.dyli 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1744421900a2605499.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论