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

如何将Picasa API集成到iPhone应用程序中?,iphone,picasa,Iphone,Picasa,我曾尝试在iphone上集成Picasa API,编译得很好,但在发布过程中我发现了以下错误 dyld:未加载库:@loader\u path/。/Frameworks/GData.framework/Versions/A/GData 引用自:/Users/jacksu/Library/Application Support/iPhone Simulator/User/Applications/9A7E3F54-022F-4771-BD6A-E458F5545144/picastest.app/

我曾尝试在iphone上集成Picasa API,编译得很好,但在发布过程中我发现了以下错误

dyld:未加载库:@loader\u path/。/Frameworks/GData.framework/Versions/A/GData 引用自:/Users/jacksu/Library/Application Support/iPhone Simulator/User/Applications/9A7E3F54-022F-4771-BD6A-E458F5545144/picastest.app/picastest 原因:找不到图像

我不确定是什么问题


我从Source/build/Debug/GData.framework导入了GDataFramework。我在源代码目录下构建了这个项目。

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

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

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

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

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

  • 接下来,进入项目下的框架和库组,并添加基础框架,这是可可接触的必要框架。当您添加此项时,请确保仅检查新创建的目标以使用此项。(你不想把GData的Mac版本搞砸了)

  • 现在,在“目标”下,选择您创建的语音库并单击(i)按钮(或双击它)

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

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

  • 现在关闭对话框

  • 选择要在语音库中显示的活动目标

  • 将ActiveSDK设置为Project->SetActiveSDK->Simulator-iPhoneOS2.1

  • 现在您已经准备好了->只需点击build,您将拥有默认的libgdaap honelibrary.a文件

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

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

  • 在Build选项卡中搜索“library”,找到“library search Paths”后,将该路径添加到上一步中刚构建的库中

  • 然后将“-lGDataIPhoneLibrary”(省略lib前缀和.a扩展名)添加到“其他链接器标志”选项(可以通过在搜索框中搜索链接器找到)

现在,这应该是希望建立。希望这对你的工作

干杯,
Kerem

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

要执行此操作,请尝试以下操作:

  • 双击应用程序目标(与前面一样)

  • 这次看“常规”选项卡

  • 找到GData.framework并将其从“必需”更改为“弱”

如果不添加框架,可能会出现编译错误,因为没有解析GDATA头文件。如果在“头搜索路径”中添加指向“头文件”的链接,则根本不需要添加框架

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

Hi,当我编译“GData”项目时,它显示错误,许多文件丢失。请您提出建议?