1

打开 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 ../..

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

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

现在我进入目录并使用cmakelibgit2构建:

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

源:https ://github.com/libgit2/libgit2

除其他外,这会导致libgit2.0.15.0.dylib正在创建的文件中。 查找器中的文件图像

我将它拖入 Xcode 并将其添加到 ObjectiveGit 和 iOS 目标。现在我转到 ObjectiveGit-iOS 的构建阶段选项卡,让它看起来像这样:

在此处输入图像描述

问题

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

在此处输入图像描述 在此处输入图像描述

现在,这是我曾经遇到的一个错误,但现在没有了。我不知道我做了什么导致它。 在此处输入图像描述

更新

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

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

```

4

1 回答 1

1

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

需要明确的是:iOS当然支持动态库,但只有苹果分发的那些。

于 2012-04-23T13:50:06.500 回答