1

React Native0.61.5に更新した後、動的にしかリンクできないライブラリのリンクに問題があります ( @react-native-mapbox-gl/maps)。

解決策は通常、Podfile で動的ライブラリを有効にすることです (設定use_frameworks!)。ただし、これによりすべてのライブラリが動的になり、静的にしかリンクできないライブラリで問題が発生します ( react-native-firebase)。

これらの相反する要件を満たす解決策はありますか?

が設定されている場合use_frameworks!、実行時に次のエラーがスローされます。

dyld: Library not loaded: @rpath/MapboxMobileEvents.framework/MapboxMobileEvents
  Referenced from: /private/var/containers/Bundle/Application/4A4F5BC3-2A1D-4949-9423-71EF7EFE79FD/ImmoWert2Go.app/Frameworks/Mapbox.framework/Mapbox
  Reason: image not found

use_frameworks!が設定されていない場合、次のpod installエラーがスローされます。

[!] The 'Pods-ImmoWert2Go' target has transitive dependencies that include statically linked binaries: (FirebaseCore, FirebaseCoreDiagnostics, GoogleDataTransportCCTSupport, GoogleDataTransport, and FirebaseInstanceID)
4

1 に答える 1

1

@react-native-mapbox-gl/mapsは現在静的ライブラリとして利用できないため、プロジェクト全体を動的ライブラリを使用するように構成する必要がありますが、これは Apple によって推奨されていません。

解決策は、Podfile の先頭に次の行を追加することでした。

# Set libraries as dynamic by default
use_frameworks!

# Set specific libraries as static (react-native-firebase)
pre_install do |installer|
  installer.pod_targets.each do |pod|
    if pod.name.start_with?('RNFB')
      def pod.build_type;
        Pod::Target::BuildType.static_library
      end
    end
  end
end

これが完了したら、RNFirebaseUtil.hからパッチを適用する必要があります

#import <Firebase.h>

#import "Firebase.h"
于 2020-03-05T12:45:30.663 に答える