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

iOS Share Extension能否调用主App执行任务及认证凭证共享方案咨询

iOS分享扩展同步认证状态及上传任务的可行实现方案

方案1:通过App Group安全共享认证凭证(推荐,无需唤起主App)

  • 首先给主App和分享扩展两个Target都开启App Group能力,勾选同一个Group ID,这是苹果官方提供的同开发者应用间安全共享数据的官方通道
  • 主App登录获取AWS Cognito的访问令牌、刷新令牌后,将凭证存入UserDefaults(suiteName: "你的App Group ID"),或者存入App Group共享的钥匙串项中,钥匙串存储方案安全性更高,还可支持跨设备iCloud同步(如果开启相关能力)
  • 分享扩展运行时直接从共享的UserDefaults/钥匙串读取凭证,直接在扩展内部完成图片上传,整个流程不需要用户跳转,你观察到的主流即时通讯应用的分享扩展均采用该方案实现
  • 注意要在扩展中增加令牌有效期校验逻辑,如果检测到令牌过期,再跳转到主App完成刷新或者重新登录,避免发起无效请求

方案2:扩展传递资源后唤起主App完成上传

  • 如果你不希望扩展直接接触认证凭证,可以先把分享的图片存入App Group的共享目录,再通过自定义scheme唤起主App,iOS 10+可以用NSExtensionContext的open(_:completionHandler:)方法实现跳转
  • 主App被唤起后,从共享目录读取图片,用自身存储的认证凭证完成上传,上传完成后可以删除共享目录的临时图片避免占用存储空间
  • 注意该方案会触发主App前台唤起,如果希望后台处理需要配合Background Tasks相关能力,实现复杂度比方案1高,且如果用户主动杀了主App,流程会被中断

选型建议

如果上传逻辑不复杂,优先选择方案1,共享钥匙串存储凭证的安全性已经经过苹果官方的安全认证,不会有额外的安全风险,是当前行业内的通用实现方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:01