为什么找不到一个静态库的头文件归档?(Why is a static library's h

2019-08-03 20:20发布

我可以建立调试就好了。 我三重检查,静态库包含在项目的构建阶段设置。 我也尝试过其他的东西像头包括路径和这样无济于事。

当我尝试建立试飞的IPA,我得到一个错误: #import <MBProgressHUD/MBProgressHUD.h>

我已经能够前建立一个IPA,但它并没有实现/使用前MBProgressHUD静态库。

我能包括头和代码文件手动,而不是静态链接它,但我更知道是怎么回事。

谢谢。

PS -我用给出的“静态库”的说明https://github.com/jdg/MBProgressHUD

Answer 1:

默认情况下,Xcode中提出构建产品分为$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)这相当于build/Release-iphoneos的实例。 这是该产品获得建成和在那里头将会被复制到该文件夹​​。

当我们复制发布配置说一个叫“应用商店”,现在的Xcode构建到build/App Store-iphoneos 。 问题是,真的,静态库正在建立与他们的Release配置,进入发行版文件夹。

由于App Store中的配置(对我来说,至少)是唯一在那里轻松地配置配置文件之间切换,我的解决方案是为App Store Config中的“每配置构建产品路径”更改为$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)使App Store的配置还建立到发行版文件夹。



Answer 2:

随着另一个SO问题的帮助( https://stackoverflow.com/a/10159481/143225 )我能得到头文件包含。

显然,归档构建过程比调试构建过程有些不同。 通过添加"$(BUILD_ROOT)/../IntermediateBuildFilesPath/UninstalledProducts"到“用户头搜索路径”建设置它成功地建造。

我还是想明白为什么这是行不通的,因为我希望它。 我有一个项目是建立在汽车预感包含头文件用于调试和发布版本,但不知何故没有存档版本。 这很奇怪,因为我认为档案建立从Xcode的方案设置调试或释放的设置继承。

任何额外的信息是值得欢迎的。



Answer 3:

丹尼尔·塔尔的回答会起作用,但的,而不是改变“每个配置构建产品路径”,可以更新静态库项目的配置包括一个“应用程序商店”的配置或其他任何命名配置您的应用目标是构建对,这是Release配置的副本。 通过这种方式,静态库将输出它的库和头/ include文件到相应的目录,这将是在“每个配置构建产品路径中使用的$(BUILD_DIR)/ $(配置)$(EFFECTIVE_PLATFORM_NAME)宏来解决“; 和walllaaaaa ......公共图书馆头现在可以正确地被Xcode中解决。 所以总结起来,如果你有一个“应用程序商店”命名的应用程式的目标和你对其中出口头一个静态库链接配置,确保静态库项目还包括“应用商店”的配置,你会是一个快乐的人。



文章来源: Why is a static library's header file not found for archiving?