答案 0 :(得分:7)
要创建Safari应用扩展程序,您将新目标添加到Xcode中的现有项目。 - 在文档中提到。
启动Xcode并打开包含OS X应用程序的现有项目,或者创建一个新项目。
选择文件>创建新目标新>目标
在新目标表中,查看左侧边栏并选择OS X Application Extension。
从右侧的模板列表中选择Safari Extension,然后单击“下一步”。
输入扩展程序的产品名称,例如“我的扩展程序”。
确保在“项目”菜单中选择了应用程序项目,并在“嵌入”中选择了OS X应用程序目标 在应用程序菜单中。
单击“完成”。
当Xcode询问您是否要为新分机激活新方案时,请单击“取消”按钮。
Xcode在项目中添加了一个新组,其中包含几个新文件,包括Info.plist文件,各种支持源文件,Interface Builder文件,JavaScript文件和工具栏图像PDF。
*可能还有一些步骤,虽然我很确定你可以处理它......
答案 1 :(得分:2)
最简单的方法是只使用Xcode 8并排安装Xcode 7 - 这样可以正常工作 - 并在7中加载您的项目。创建扩展随播目标,但不要对它做任何事情。关闭Xcode 7并将Xcode 8打开到同一项目/工作区,您将看到该伴侣。如果你使用Swift,你需要对语言进行现代化处理(Xcode 7使用Swift 2,Xcode 8使用Swift 3);当您尝试编译时,IDE会直接建议一些更改,但是您可能需要手动更改其他更改。
或者/更尴尬的是,您可以在Xcode 8中创建一个新目标(例如Safari扩展),然后删除无关文件(例如用于内容注入的JavaScript)并编辑/替换扩展中的plist到扩展随播广告的plist。 NSExtensionPointIdentifier
的关键属性为NSExtensionPrincipalClass
;还要确保NSExtension
实现扩展随播协议(这两个密钥都在I am using MSSQL shared database for my sonarqube.
下)。
请注意,这种方法的结果好坏参半。有时它有效,有时Safari假装它根本看不到扩展伴侣,有时扩展无法看到同伴,直到你重新加载它然后它可以...如果你能看到扩展伴侣,它应该工作(但请注意关于同伴崩溃的警告here)并且我没有找到任何有助于解决这些问题的日志记录。尝试使用Xcode 8调试扩展随播广告对我来说也不起作用。
我真的希望Apple没有坚持“思考不同”并且只支持Native Messaging,例如 每一个 现代浏览器。