我正在调查Apple Safari扩展技术,其中扩展程序与以下版本的包含应用程序捆绑在一起:
OSX 10.12.1
Safari Version 10.0.1 (12602.2.14.0.7)
Xcode 8.1
cocoapods 1.1.1
我正在执行一系列步骤,将cocoapods引入我的项目中。执行此操作会导致appex无法加载。它在Safari Extension窗格中显示非常短暂,然后消失。这很容易重新创建:
1)打开Xcode,创建一个名为TEST的新项目
2)将Safari扩展目标添加到名为TEST-EXT
的项目中此时,您将获得包含应用程序的模板和Safari中的工具栏按钮(在Safari Develop菜单下选中“允许未签名的扩展”)。这可以按预期工作。
3)将podfile添加到项目根目录:
source 'https://github.com/CocoaPods/Specs.git'
platform :osx, "10.12"
use_frameworks!
target "TEST" do
pod 'Starscream', :git => 'https://github.com/daltoniam/Starscream.git', :tag => '2.0.2'
end
4)在项目根目录中运行“pod install”
5)关闭项目
6)打开pod install
生成的工作区文件7)构建并运行
包含应用程序按预期启动,但是,TEST-EXT现在非常短暂地出现在Safari Extensions窗格中,然后消失。 我在控制台日志中看到了这可能与之相关:
12:21:17.440851 +1000 Safari discovered extensions
12:21:17.533439 +1000 Safari calling plugIn beginUsing:
12:21:17.533687 +1000 Safari PlugInKit error in beginUsing:
12:21:17.533728 +1000 Safari killing invalid plugIn
12:53:59.417969 +1000 Safari completed calling plugIn beginUsing: for pid: 0
12:53:59.418374 +1000 Safari MacOS error: -67062
12:53:59.583475 +1000 Safari Disabling and blocking extension with identifier: <private>
似乎引入cocoapods会使扩展无效,无论扩展是否包含任何依赖项。我已经尝试过这个帖子中的所有内容都无济于事: Validation Error: Invalid Bundle. The bundle at ... contains disallowed file 'Frameworks'
有没有人对调试这个或找到根本原因有任何想法?