Ausgabe
Ich habe ein in Swift geschriebenes FramweworkA erstellt, das ein in Objective-C geschriebenes FrameworkB verwendet.
Diese beiden Frameworks sind dynamisch.
Ich habe keinen Fehler, wenn ich mein FrameworkA in meine iOS-Anwendung integriere.
Das Problem ist, dass Apple mir nicht erlaubt, ein Framework in einem Framework zu haben, wenn ich meine App auf testFlight hochlade.
Validierungsfehler: Ungültiges Paket. Das Paket unter … enthält die unzulässige Datei „Frameworks“.
Während meiner Recherche habe ich gesehen, dass Sie ein Umbrella Framework erstellen können, aber dass es nicht empfohlen wird.
Ist das Umbrella Framework noch möglich? Was ist Ihrer Meinung nach die beste Lösung?
Da ich weiß, dass dieses Framework für Kunden verfügbar sein wird und ich daher nur ein Framework haben möchte.
Vielen Dank
Lösung
Vor ein paar Tagen steckte ich in der gleichen Art von Problem fest, als ich ein dynamisches Framework A erstellte , das Framework X intern verwendet. Es kann Framework A nicht allein verwenden, da ich Framework X in meiner iOS-App hinzufügen muss. Ich möchte nur ein einzelnes Framework, das in das iOS App Bundle exportiert werden kann.
Da Umbrella Framework kein bevorzugter Weg war, um dies zu erreichen. Ich habe mich stattdessen für Cocoapods entschieden, wo ich My Framework X in Framework A abstrahieren konnte –
Meine Podspec -Datei war ungefähr so -
Pod::Spec.new do |s|
s.name = "MySDK"
s.version = "1.0.1"
s.summary = "xxxxxxx"
s.description = <<-DESC
"xxxxxxxxxxxxxx."
DESC
s.homepage = "https://xxxxxxxxxx"
s.author = { "Abhishek Ravi" => "xxxxxx" }
s.source = { :http => 'file:' + __dir__ + '/' }
s.source_files = "*"
s.vendored_frameworks = 'FrameowkrA.xcframework', 'FrameowkrB.xcframework'
s.platform = :ios
s.swift_version = "5.0"
s.ios.deployment_target = '12.0'
Ende
Jetzt können Sie Ihre iOS-App bitten, das SDK über Pod zu verwenden –
pod 'MySDK', :git => 'ssh://GIT-PATH.git', :branch => 'master'
Beantwortet von – Abhishek
Antwort geprüft von – David Marino (FixError Volunteer)