cocoa - 导入skype.framework有错误

时间:2012-10-03 03:15:49

标签: macos cocoa skype

将skype.framework导入到mac app时出现问题。 这是错误

"_OBJC_CLASS_$_SkypeAPI", referenced from:
     objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64

虽然,我添加了skype.framework。

2 个答案:

答案 0 :(得分:1)

从Skype开发者网站分发的Skype.framework不包括64位版本。下载最新版本的Skype for Mac客户端,打开该应用程序的包内容并从那里复制Skype.framework(/Skype.app/Contents/Frameworks/Skype.framework)并使用它来替换您的应用程序使用的那个。当前应用程序中的框架包括64位版本(尽管框架本身尚未更新多年)。还要确保在Xcode的构建阶段将Skype.framework复制到应用程序的内部Frameworks目录(您可能需要添加新的构建阶段脚本)。

请注意,对于最后几个版本的Mac客户端,SkypeAPI存在一些问题。例如,“GET GROUP [id] USERS”调用不返回任何内容(甚至不是错误),“GET SKYPEVERSION”不返回版本但返回错误。此外,Cocoa API是异步的,很难用复杂的方法解析(例如,获取所有GROUP ID然后遍历它们以获得所有GROUP名称的列表)。当您正在收听对查询的回复时,可能会收到其他通知。从AppleScript调用API允许同步响应,但Skype中的托管API客户端只显示AppleScript而不是您的特定应用程序,并且可能是用户的安全问题,因为他们需要接受AppleScript从您的应用程序管理Skype,但这也意味着使用AppleScript的其他应用程序不需要控制Skype的权限,并且可以在用户不知道的情况下这样做(收集地址簿信息,帐户配置文件,发送文本等)。

答案 1 :(得分:0)

确保将Skype.framework设置为您尝试构建的应用目标中的成员。

单击项目文件列表中的“Skype.framework”,然后查看文件检查器。以下是另一个文件的样子:

Make sure Target Membership is selected for your .m file