在iOS应用程序中包含ObjectiveGit库

时间:2012-04-14 11:45:06

标签: ios5 frameworks xcode4.3 dynamic-library libgit2

打开ObjectieGitFramework.xcodeproj文件时,我现在可以成功构建iOS方案。但是需要进行大量的实验。让我们从头开始 - 我是如何做到的。

我做了什么:

首先我克隆了一个ObjectiveGit的分支。

git clone git@github.com:Eonil/objective-git.git --recurse-submodules
cd objective-git
cd ./Scripts/libgit2-make-ios/; sh ./download-make-clean-deploy.sh "./../../libgit2.a"; cd ../..

Src:https://github.com/libgit2/objective-git/pull/54

现在打开项目并进行构建会导致一个错误和一个警告。我让Xcode自动更新项目设置以解决警告。 Errors

现在我转到libgit2目录并使用cmake构建:

$ mkdir build && cd build
$ cmake ..
$ cmake --build .

Src:https://github.com/libgit2/libgit2

此结果,除其他外,正在创建的libgit2.0.15.0.dylib文件中。 Image of the file in finder

我将其拖入Xcode并将其添加到ObjectiveGit和iOS目标。现在我转到ObjectiveGit-iOS的构建阶段选项卡,并使其如下所示:

enter image description here

问题

此时我可以构建项目,并且可以使用ObjectiveGit成功地在其中创建类。但是当我在另一个项目中拖动项目时,添加了ObjectiveGit-iOS作为目标依赖,并在libObjectiveGit-iOS.a中添加了link binary with libraries我无法导入ObjectiveGit/ObjectiveGit.h加上我得到了一些其他的怪异错误(见下图)。我对xcode中的库知之甚少,所以我根本不知道为什么这不起作用。

enter image description here enter image description here

现在,这是我曾经犯过的一个错误,但现在已经不是了。我不知道我在做什么导致它。 enter image description here

更新

 $(SRCROOT)/frameworks/ObjectiveGit/Classes
 $(SRCROOT)/frameworks/ObjectiveGit/libgit2/include
 $(SRCROOT)/frameworks/ObjectiveGit/Classes/Categories

将此添加到header search path时会发生奇怪的事情。它导致没有找到文件,而是70个其他Mach-o错误。

```

1 个答案:

答案 0 :(得分:1)

iOS不支持动态库。你必须使用静态库。

要明确:当然iOS支持动态库,但只支持由apple分发的动态库。