我有一个使用自己的框架的应用程序。我为i386做了框架构建以及arm,一切都很好。我的应用程序曾经在每个模拟器上运行,并且可以在商店中使用。
现在,出于某种原因,我无法在某些模拟器上运行我的应用程序。 有效的模拟器:
不起作用的模拟器:
错误是找不到我框架中的* .h文件。
我想知道什么可以阻止找到这个文件,或者更确切地说某些模拟器没有使用什么搜索路径。必须有一些项目/目标属性与这些模拟器类型相关,除了我找不到任何会产生影响的东西。
在我的代码中,我搜索了我会做出的任何差异,但它们只是关于UI组件的iOS版本。我也使用TARGET_IPHONE_SIMULATOR
,但模拟器之间不应该有任何区别。
仅供参考,我的应用程序版本包括Watch Kit。它正在Apple Watch以及连接到iPhone 5(外部显示器)的Apple Watch模拟器上工作。它可能是相关的......
非常感谢任何帮助!
编辑:完整的错误说明:
/Users/me/sources/myApp/iOS/trunk/include/someFile.h:18:10:' dir / someOtherFile.h'找不到文件
编辑:所有目标中的头文件:
我的框架和包含我的框架的任何.h的每个文件都只是myApp的一部分,我注意不要在myApp.watchkit或myApp.watchkitextension中添加任何引用
编辑:尝试了解决方案:
编辑:64位:
我在项目文件中使用了类似的路径:
$(FRAMEWORK_SEARCH_PATHS)frameworkName_$(CURRENT_ARCH).framework/Versions/A/Headers
例如,它指的是' /searchPathFolder/frameworkName_i386.framework /... 39;当我为模拟器构建时。
答案 0 :(得分:3)
解决。问题来自我的框架,由于某种原因,它不是为64位模拟器版本构建的。
为了使一切工作正常,该项目需要4个版本的框架: x86 (32位模拟器), x64 (64位模拟器), armv7 (32位设备)和 arm64 (64位设备)。
然后使用项目属性,在构建时忽略不必要的框架:
ignoring file myFramework_i386.framework/myFramework_i386, file was built for archive which is not the architecture being linked (arm64)