मैं सिर्फ आईओएस के लिए स्विफ्ट लाइब्रेरी पैकेज बनाना चाहता हूं, मैक के लिए नहीं। इसलिए, मेरे पास एक पैकेज फ़ाइल इस प्रकार है:

let package = Package(
    name: "Example",
    platforms: [
      .iOS(.v11)],
    products: [
        .library(
            name: "Example",
            targets: ["Example"]
        )
    ],
    targets: [
        .target(name: "Example",
                path: "Example/Example")
    ]
)

जैसा कि आप देख सकते हैं, मैं मैक को प्लेटफॉर्म में शामिल नहीं करता। हालांकि, जब मैं पैकेज से निर्माण करने का प्रयास करता हूं, तो यह विफल रहता है:

ReplayKit is not available when building for macOS. Consider using `#if !os(macOS)` to conditionally import this framework.

और मैक के लिए उपलब्ध नहीं किसी भी प्रकार के लिए वही। मैं इसे कैसे हल कर सकता हूं?

1
toupper 14 अप्रैल 2020, 17:35

1 उत्तर

सबसे बढ़िया उत्तर

पैकेज का platforms अनुभाग निर्दिष्ट प्लेटफ़ॉर्म का न्यूनतम परिनियोजन लक्ष्य है, न कि पैकेज द्वारा समर्थित प्लेटफ़ॉर्म की सूची। इसलिए यदि आप .macOS(...) निर्दिष्ट नहीं करते हैं तो आपको डिफ़ॉल्ट मिलता है जो कि .v10_10 माना जाता है।

दुर्भाग्य से इसका मतलब है कि आपको यह निर्धारित करना होगा कि क्या उपलब्ध है और #if !os(macOS) ब्लॉक के अंदर int डालें जैसे कि बिल्ड त्रुटि कहती है।

1
bscothern 15 अप्रैल 2020, 16:10