Avatar
えっと。
7:34 PM
そういうものじゃないはずなのにバグでそうなってしまってるってことですかね。
7:37 PM
SwiftUIやCombineを使うライブラリで、そのmin target platformが例えばiOS 11とかになってる場合、そのライブラリの実装では@available()や#available()でAPIを制限すれば、本来なら、そのライブラリを使う側は-weak_frameworkなしに@importするだけで(dyldのframwork linkの力で)自動でシンボルがweakになってランタイムで問題なく実行できるんです
7:38 PM
しかしどうやらcombineやswiftuiにはいくつか問題のあるシンボルがまだ含まれているようで、それらがweakリンクにならないんです
7:38 PM
nm -mgでバイナリみるとわかると思います
7:39 PM
そういう漏れ出たシンボルはそのライブラリを利用してる側からは知ったこっちゃないことなのに-weak_frameworkしないと実行時にdyldがcrashするということになってしまって
7:39 PM
あらウザイ
7:39 PM
ってことです
7:39 PM
Tweetのスレッドでも参照していますが、https://forums.swift.org/t/weak-linking-of-frameworks-with-greater-deployment-targets/26017/11 Just WorksTMらしいんですよね本来は (edited)
That should definitely work as long as the framework is indeed weak-linked. If it's not, then either the SwiftUI folks have missed some availability (more likely), or there's something in Xcode (or in your project specifically?) that's causing it to be strong-linked. It's supp...
7:40 PM
そうなってないんだけど。