26

Catalystのおかげで、ついに Mac へのアプリの移植が可能になりました。問題は、多数のポッドが AppKit をサポートしていないことです。最も一般的なのは Crashlytics / Firebase です。

In [...]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics(CLSInternalReport.o), building for Mac Catalyst, but linking in object file built for iOS Simulator, file '[...]/Pods/Crashlytics/iOS/Crashlytics.framework/Crashlytics' for architecture x86_64

これは最近のトピックなので、macOS のビルドからポッドを削除する方法に関するドキュメントを見つけることができませんでしたが、iOS および iPadOS 用に保持します

コードで使用することが可能です:

#if !targetEnvironment(macCatalyst) 
// Code to exclude for your macOS app
#endif

しかし、問題の一部は、他の部分はiOS専用のポッドをリンクすることです...

ライブラリが macOS には不可欠ではないが、iOS では必要な場合、最も簡単で最善の方法は何でしょうか?

4

6 に答える 6

7

cocoapods 1.8.4 では、@AncAinu の優れた回答を次のように適応させる必要がありました。

post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "Pods-[Name of Project]"
      puts "Updating #{target.name} to exclude Crashlytics/Fabric"
      target.build_configurations.each do |config|
        xcconfig_path = config.base_configuration_reference.real_path
        xcconfig = File.read(xcconfig_path)
        xcconfig.sub!('-framework "Crashlytics"', '')
        xcconfig.sub!('-framework "Fabric"', '')
        new_xcconfig = xcconfig + 'OTHER_LDFLAGS[sdk=iphone*] = -framework "Crashlytics" -framework "Fabric"'
        File.open(xcconfig_path, "w") { |file| file << new_xcconfig }
      end
    end
  end
end
于 2019-12-20T23:07:43.070 に答える