使用的库 flutter_sharing_intent: ^1.1.1
安卓端实现比较简单,ios就比较麻烦,尤其是对于我这种没有ios开发经验的人来说,一切都是陌生的,实现起来比较吃力
在24年9月份就尝试在ios上集成,没有成功
今年再次尝试了一下,居然可以了,把过程记录一下
- Add the following
ios/Runner/info.plist
<key>AppGroupId</key>
<!--HERE set your group Id-->
<string>$(CUSTOM_GROUP_ID)</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>SharingMedia-$(PRODUCT_BUNDLE_IDENTIFIER)</string>
</array>
</dict>
</array>
<key>NSPhotoLibraryUsageDescription</key>
<string>To upload photos, please allow permission to access your photo library.</string>
第一步,有一个变量$(CUSTOM_GROUP_ID),我感觉这里其实不重要,因为我实现的时候,这里是直接复制的,啥都没有改。
但是如果你想填也没有问题,具体填什么,后面再说。
-
Create Share Extension
Using xcode, go to File/New/Target and Choose "Share Extension"
Give it a name i.e. "Share Extension"
image.png
image.png
image.png
image.png
接下来比较重要的第一步,添加App groups
注意,这里Runner和ff-share都需要添加相同标识App groups,你创建的App groups id就可以填写到第一步的$(CUSTOM_GROUP_ID)上了

image.png

image.png
弄好这一步就可以,切换到ff-share来运行调试了

image.png
第一次运行就有个报错

image.png
这个报错也折腾了好一会,解决办法

image.png
好了,可以运行了,我选择手机自带的浏览器来测试

image.png
手机浏览器启动之后,点击这个分享就可以看到我们app图标了

image.png
到这里基本就完成了。
还要添加三个文件
ios/Share Extension/ShareViewController.swift
ios/Share Extension/SharingFile.swift
ios/Share Extension/SharingFileType.swift

image.png

image.png

image.png
把官网提供的三个文件逐一拷贝即可
到这里基本大功告成了
2026-8-7遇到一个问题,点击+ Capability 按钮 新增分组,没有任何显示

image.png
后面问了gimini说是Runner文件夹下面的Runner.entitlements、RunnerDebug.entitlements导致的,然后我去看,结果文件是存在的,但是两个都是0字节,里面是空的

image.png
后面给出的方案是,替换为以下标准的 XML 格式:
<?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">
<dict>
</dict>
</plist>
两个都添加之后,保存,重新Capabilities新增分组,成功显示



