Xcode14 は iOS11 または iOS12 をコンパイルし、エラー dyld: Library notloaded: /usr/lib/swift/libswiftCoreGraphics.dylib を報告します。

Xcode14 を更新した後、コンパイルされたプロジェクトは iOS12.5 以降のシステムでは正常に動作することがわかりましたが、iOS11 や iOS12.1 などの iOS12.5 より前のシステムで実行すると、次のようなエラーが報告されます。

dyld: ライブラリがロードされていません: /usr/lib/swift/libswiftCoreGraphics.dylib
  参照元: /private/var/containers/Bundle/Application/xxx-xxx-xxx-xxx-xxxx/xxx.app/Frameworks/xxx.framework/ xxx
  理由: 画像が見つかりません

原因を調べてみると、image not found だったそうですが、このライブラリのイメージはプロジェクトで使用されておらず、iOS 12.5 以降では問題なく動作していたので、明らかに今回の問題ではないので、ライブラリがロードされていないという問題があるこの問題の解決策は、「ターゲット」->「ビルドフェーズ」-> 「ライブラリが不足しているライブラリとバイナリをリンク」に libswiftCoreGraphics を追加することです(エラーが報告されたライブラリを追加します)。たとえば、libswiftCoreGraphics が欠落しているので、libswiftCoreGraphics.tbd を追加するだけです。

別の前提があることに注意してください。

これはメイン プロジェクト内です: [ターゲット] -> [ビルド設定] -> [ビルド オプション] -> [常に Swift 標準ライブラリを埋め込む] を [はい] に設定する必要があります。

方法 2: (推奨方法) Podfile での統合変更

不足しているライブラリを追加します。

      if target.name.eql?('ライブラリ名')

          ライブラリ = config.build_settings['OTHER_LDFLAGS']

          config.build_settings['OTHER_LDFLAGS'] = "#{ライブラリ} -lswiftCoreGraphics"

          libraryPath = config.build_settings['LIBRARY_SEARCH_PATHS']

          config.build_settings['LIBRARY_SEARCH_PATHS'] = "#{libraryPath} $(SDKROOT)/usr/lib/swift"

      終わり

iOS16への適応方法と合わせた利用箇所は以下の通りです(全体の参考は以下をご参照ください)

post_install は |インストーラー| を実行します
    installer.pods_project.targets.each は |target| を実行します。
        target.build_configurations.each は |config| を実行します。
              config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'   

              config.build_settings['ENABLE_BITCODE'] = 'NO'

              config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""

              config.build_settings['CODE_SIGNING_REQUIRED'] = "いいえ"

              config.build_settings['CODE_SIGNING_ALLOWED'] = "いいえ"

              if target.name.eql?('ライブラリ名') 

                ライブラリ = config.build_settings['OTHER_LDFLAGS']

                config.build_settings['OTHER_LDFLAGS'] = "#{ライブラリ} -lswiftCoreGraphics"

                libraryPath = config.build_settings['LIBRARY_SEARCH_PATHS']

                config.build_settings['LIBRARY_SEARCH_PATHS'] = "#{libraryPath} $(SDKROOT)/usr/lib/swift"

              終わり

        終わり、
    終わり
、終わり

方法 3: 方法 2 の補足 (上記の方法 2 でもエラーが報告される場合は、次の方法を使用できます)

post_install は |インストーラー| を実行します
    installer.pods_project.targets.each は |target| を実行します。
        target.build_configurations.each は |config| を実行します。
              config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'   

              config.build_settings['ENABLE_BITCODE'] = 'NO'

              config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""

              config.build_settings['CODE_SIGNING_REQUIRED'] = "いいえ"

              config.build_settings['CODE_SIGNING_ALLOWED'] = "いいえ"

              if target.name.eql?('ライブラリ名')

                   # .xcconfig ファイルのパスを作成する

                   configuration_file = "#{Dir.pwd}/Pod/ターゲット サポート ファイル/#{target.name}/#{target.name}.#{config}.xcconfig"

                   # .xcconfig ファイルから値を読み取る

                   「#{target.name}.#{config}.xcconfig PATH #{configuration_file}」を配置します

                   ライブラリ = read_xxconfig_Param(configuration_file, 'OTHER_LDFLAGS')

                   libraryPath = read_xxconfig_Param(configuration_file, 'LIBRARY_SEARCH_PATHS')

                   「#{target.name}.#{config}.xcconfig ライブラリ #{libraries}」を配置します

                   config.build_settings['OTHER_LDFLAGS'] = "#{ライブラリ} -lswiftCoreGraphics"

                   config.build_settings['LIBRARY_SEARCH_PATHS'] = "#{libraryPath} $(SDKROOT)/usr/lib/swift"

              終わり

        終わり、
    終わり
、終わり

def read_xxconfig_Param(filePath, paramName)

       paramValue = ""

       if File::exist?(ファイルパス)

            IO.readlines(filePath).each は |block| を実行します。

                str = String.new(ブロック)

                str.include の場合? パラメータ名

                     paramValue = str.gsub("#{paramName} = ", "")

                     パラメータ値を返す

                 終わり

            終わり

        終わり

        戻る ""

終わり

最後に、変更を加えた後は、必ず-pod installを再実行してください。

おすすめ

転載: blog.csdn.net/qq_37269542/article/details/127064291