SPM(Swift Package Manager)中导入.framework

6
我们正在尝试将TikTokOpenSDK.frameoworkhttps://developers.tiktok.com/doc/ios_quickstart)集成到我们的自定义Swift Package中。
TikTok仅提供.framework访问权限 (您可以手动下载)。目前,无论我尝试什么组合,都无法成功集成它,因为它会提示unsupported extension for binary target ‘TikTokOpenSDK’; valid extensions are: xcframework。请帮忙看看如何解决。

enter image description here

任何帮助都将不胜感激。谢谢!
1个回答

9

Swift Package Manager仅支持XCFramework。你唯一的选择是将传统的框架转换为XCFramework。我曾经在SendbirdSDK上进行过这样的操作,并且一切都顺利完成(虽然我不能完全保证这对TikTok也适用!)。该过程的要点是您需要创建如此处所述的XCFramework结构。请注意,这是通过逆向工程实现的,因此可能会有所变化。

如果您想要尽量缩小切片的大小,那么这将涉及到相当多的文件夹;但是如果您完全不关心,只需要它在模拟器和iOS设备上运行,则可以遵循以下树形结构:

TikTokOpenSDK.xcframework
- Info.plist
- universal-simulator
    - TikTokOpenSDK.framework
- universal-hardware
    - TikTokOpenSDK.framework

然后前面提到的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>

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


嗨,艾莉森,非常感谢!我确定我评论了你的答案,但出于某种原因,它不在这里哈哈。只是想说非常感谢你详细的回答-太有效了! - Roi Mulia
@RoiMulia,你能解释一下你是怎么让它工作的吗?我有一个问题,就是我无法在 M1 模拟器上运行 TikTok 框架。 - Fab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接