仅供参考,我对 XCode 开发完全陌生。我有一个 Safari 应用程序扩展项目。
如果我从 XCode 中运行它,它会将我的扩展添加到 Safari 中。如果我创建存档、导出并选择“导出开发签名应用程序”,我可以获取生成的文件,将其安装在另一台计算机上,运行 Safari,然后查看扩展名。如果我创建存档、Xport,然后选择“保存以进行 Mac App Store 部署”,然后安装生成的文件,我会在应用程序中看到我的应用程序扩展,但 Safari 中什么也没有显示。
我们向 App Store 的提交也被拒绝,因为缺少扩展程序。如何让 App Store 安装程序安装扩展以便 Safari 可以看到它?
提前致谢...
对于遇到类似问题的其他人,我取得了一些进展。我确实发现,当我运行安装程序时,我的扩展实际上已安装到 Safari 中。直到我在 Safari 的“开发”菜单下选择“允许未签名的扩展”选项后,我才在 Safari 扩展列表中看到它。
我认为,由于我在项目中设置了签名区域,并且我的计算机位于 iTunes Connect 中允许的计算机列表中,因此即使没有指定该选项,我也能够在扩展列表中看到它。所以我再次上传了构建,他们不再因为这个原因拒绝它。
至于第一次发生了什么,我不确定。要么他们犯了一个错误,要么我在创建存档时没有选择正确的目标。我需要确保 Mac 应用程序成为目标,而不是扩展程序。
我无法弄清楚这一点,但有一个可行的解决方法。
我注意到
SFSafariExtensionManager.getStateOfSafariExtension
返回的状态表明我的扩展在 Safari 中仍然启用,即使它在扩展设置(或开发工具中)中不可见。
我在
~/Library/Containers/com.apple.Safari
和~/Library/Safari
(都在plist文件和sqlite3数据库中)中发现了一些对我的扩展的悬空引用,但删除它们似乎没有改变任何东西。
我将扩展程序的包标识符从
com.camlittle.XXX.Extension
更改为 com.camlittle.XXX.extension
,这已经解决了