You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让SwiftUI应用出现在iOS照片应用的分享面板中?

解决iOS照片库分享面板不显示SwiftUI应用的问题

问题根源分析

照片库的分享面板识别应用时,更倾向于匹配通用媒体类型UTI(比如public.image),而非仅具体格式;同时你的Info.plist配置存在两处关键问题:

  • CFBundleTypeExtensions字段填写错误,应为文件扩展名而非自定义描述
  • 无需重复声明系统内置的UTI类型(public.png/public.jpeg/public.heif-standard都是iOS原生支持的)

修正后的Info.plist配置

替换原有的CFBundleDocumentTypes和UTImportedTypeDeclarations部分,使用以下配置:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeName</key>
        <string>Image Files</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.image</string>
            <string>public.png</string>
            <string>public.jpeg</string>
            <string>public.heif-standard</string>
        </array>
    </dict>
</array>

<!-- 删除原有的UTImportedTypeDeclarations部分,无需重复声明系统UTI -->

额外注意事项

  • 确保项目的目标部署版本不低于iOS 14(适配SwiftUI的文件接收API)
  • 清理Xcode缓存(Product > Clean Build Folder)后重新编译安装
  • 在测试设备上,可能需要重启应用或设备,让系统刷新分享面板的应用列表

验证接收图片的SwiftUI代码

确保你的应用能正确处理传入的图片,示例代码如下:

import SwiftUI

@main
struct ImageSharingApp: App {
    @State private var receivedImage: UIImage?
    
    var body: some Scene {
        WindowGroup {
            ContentView(receivedImage: $receivedImage)
                .onOpenURL { url in
                    if let data = try? Data(contentsOf: url), let image = UIImage(data: data) {
                        receivedImage = image
                    }
                }
        }
    }
}

struct ContentView: View {
    @Binding var receivedImage: UIImage?
    
    var body: some View {
        VStack {
            if let image = receivedImage {
                Image(uiImage: image)
                    .resizable()
                    .scaledToFit()
            } else {
                Text("等待接收图片")
            }
        }
        .padding()
    }
}

内容的提问来源于stack exchange,提问作者Hridoy Chowdhury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:55:20