繁体   English   中英

如何将Picasa API集成到我的iPhone应用程序中?

[英]How can I integrate the Picasa API into my iPhone application?

我试图在iphone上集成Picasa API,编译得很好,但我发现启动时出现以下错误。

dyld:未加载库:@loader_path /../ Frameworks / GData.framework / Versions / A / GData参考自:/ Users / jacksu / Library / Application Support / iPhone Simulator / User / Applications / 9A7E3F54-022F-4771-BD6A -E458F5545144 / PicasaTest.app / PicasaTest原因:找不到图像

我不确定可能是什么问题。

我从Source / build / Debug / GData.framework导入了GDataFramework。 我在Source目录下构建了该项目。

IPhone不允许加载动态库。 您正在使用的外部库/框架必须构建为静态库,并在构建期间编译到您的应用程序中。

为了首先实现这一点,您需要创建GDATA的静态库版本:

  • 将新目标添加到GData项目(例如GDataIPhoneLibrary)

    • 您可以通过右键单击“目标”并选择“添加新目标”来执行此操作。 在对话框中,从IPhoneOS - Cocoa Touch部分选择静态库模板。
  • 然后,您需要将源.m文件拖到目标的Compile Sources部分。 (确保不要拖动.h文件,否则会收到警告。)此外,如果您只是为Picasa构建,那么命令和照片组下的文件就足够了。 另外,不要添加单元测试和测试工具组。

  • 接下来转到项目下的Frameworks and Libraries组,并添加Foundation框架,这是Cocoa Touch的必要框架。 当您添加此项时,请确保仅检查新创建的目标以供使用。 (你不想弄乱Mac版的GData)

  • 现在在目标下,选择您创建的GDataIPhoneLibrary并单击(i)按钮(或只需双击它)

  • 在“构建”选项卡下搜索“标题”,找到“标题搜索路径”后,添加以下内容(对于libxml2)作为标题路径

/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.1.sdk/usr/include/libxml2

  • 现在关闭对话框。

  • 选择您的Active Target为GDataIPhoneLibrary

  • 将ActiveSDK设置为Project-> SetActiveSDK - > Simulator - IPhone OS 2.1

  • 现在你准备好了 - >只需点击构建,你将拥有默认的libGDataIPhoneLibrary.a文件。

现在您可以将此静态库添加到您的IPhone应用程序:

  • 转到您自己的应用程序项目并选择目标(您可能有一个)并双击它以打开对话框。

  • 在“构建”选项卡中搜索“库”,找到“库搜索路径”后,添加刚刚在上一步中构建的库的路径。

  • 然后将“-lGDataIPhoneLibrary”(省略lib前缀和.a扩展名)添加到“Other Linker Flags”选项(您可以通过在搜索框中搜索链接器找到该选项)。

现在这应该有希望建立起来。 希望这对你有用。

干杯,凯雷姆

如果你保留GData.framework,那么你需要确保它不是一个必需的框架,而是一个弱框架。 弱框架意味着,应用程序在首次启动时不需要它,并且仅在引用对框架的函数调用时尝试加载它,但在您的情况下,因为库是静态编译的函数,所以调用的函数将在不需要的情况下解析加载框架。 (注意目标C消息是运行时的函数调用...)

为此,请尝试以下方法:

  • 双击您的应用程序目标(如前所述)

  • 这次查看“常规”选项卡

  • 找到GData.framework并将其从“Required”更改为“Weak”

您可能在不添加框架的情况下收到编译错误,因为GDATA头文件未被解析。 您也可以在“标题搜索路径”中添加“头文件”链接,而不需要添加框架。

与上述无关,我之前忘了一件事。 将-ObjC添加到“其他链接器标志”。

你不能在iPhone上使用动态库(当然,在Apple的框架之外)。 所有库必须静态链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM