在 SPM(Swift 包管理器)中导入 .framework

Roi*_*lia 6 xcode frameworks cocoapods swift swift-package-manager

我们正在尝试将TikTokOpenSDK.frameoworkhttps://developers.tiktok.com/doc/ios_quickstart)集成到我们的自定义中Swift Package

\n

TikTok 仅向我们提供.framework访问权限(您可以手动下载)。到目前为止,我未能将其集成,无论我尝试哪种组合,它都会失败unsupported extension for binary target \xe2\x80\x98TikTokOpenSDK\xe2\x80\x99; valid extensions are: xcframework

\n

在此输入图像描述

\n

任何帮助将不胜感激。谢谢你!

\n

Sir*_*ens 9

Swift 包管理器仅支持 XCFrameworks。您唯一的选择是将经典框架转换为 XCFramework。我过去曾为 SendbirdSDK 做过此操作,一切都很顺利(尽管我不能完全保证这适用于 TikTok!)。该过程的要点是您想要创建 XCFramework 结构,如此处所述。请注意,这是逆向工程,因此可能会发生变化。

如果您想让切片尽可能紧凑,这将涉及相当多的文件夹,但如果您根本不在乎,只需要它在模拟器和 iOS 设备上运行,则以下树可以工作:

TikTokOpenSDK.xcframework
- Info.plist
- universal-simulator
    - TikTokOpenSDK.framework
- universal-hardware
    - TikTokOpenSDK.framework
Run Code Online (Sandbox Code Playgroud)

然后上述内容Info.plist应包含:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <dict>
        <key>LibraryIdentifier</key>
        <string>universal-simulator</string>
        <key>LibraryPath</key>
        <string>TikTokOpenSDK.framework</string>
        <key>SupportedArchitectures</key>
        <array>
            <string>arm64</string>
            <string>x86_64</string>
        </array>
        <key>SupportedPlatform</key>
        <string>ios</string>
        <key>SupportedPlatformVariant</key>
        <string>simulator</string>
    </dict>
    <dict>
        <key>LibraryIdentifier</key>
        <string>universal-hardware</string>
        <key>LibraryPath</key>
        <string>TikTokOpenSDK.framework</string>
        <key>SupportedArchitectures</key>
        <array>
            <string>arm64</string>
            <string>armv7k</string>
        </array>
        <key>SupportedPlatform</key>
        <string>ios</string>
    </dict>
</array>
</plist>
Run Code Online (Sandbox Code Playgroud)

创建此结构(并直接放入原始框架中)后,您应该能够将此 XCFramework 包含在 SPM 中,并且它应该按预期工作!