在构建我使用iOS 8 SDK编写的静态库时,生成的库链接到金属框架:
$ otool -arch all -fl <static library>
...
Load command 12
519 cmd LC_LINKER_OPTION
520 cmdsize 32
521 count 2
522 string #1 -framework
523 string #2 Metal
...
我认为这是通过UIKit;我没有直接链接它与标准库的链接&#39;没有。这导致Xcode 5.1.1与iOS 7的问题,因为这个框架不存在。使用Xcode 5构建静态库并不与金属链接,但我宁愿使用Xcode的最新产品版本构建,并且在某些时候我必须解决这个问题。如何使用Xcode 6构建并解决Xcode 5用户的这个问题?
另见另一位有这个问题的开发人员,他只是使用了他没有与Metal链接的特定框架,但我不能这样做,因为我需要与UIKit链接: https://github.com/card-io/card.io-iOS-SDK/issues/66 https://github.com/CocoaPods/CocoaPods/issues/2457
答案 0 :(得分:6)
来自card.io的戴夫。即,另一位开发者&#34;以上引用。
我们的解决方案应该适合您,在构建静态库时设置为NO
两个构建设置:CLANG_ENABLE_MODULES
和CLANG_MODULES_AUTOLINK
(又名Enable Modules (C and Objective-C)
和{ {1}})。
在禁用这些模块设置的情况下构建库将完全消除Link Frameworks Automatically
命令。
使用您的库的应用程序可以启用或不启用这些模块设置。它是应用程序(而不是您的库)必须包含LC_LINKER_OPTION
等,可以通过模块自动包含,也可以手动作为链接库&#34;。