我有一个使用几个自定义框架的Mac Cocoa应用程序.(Apple将它们称为私有,它是与应用程序一起分发在应用程序包中的框架.)在每个框架中都有一个Headers包含框架头文件的文件夹.在生成的应用程序包中不需要这些,我想将它们保密.目前我使用Run Script构建阶段,其中包含以下行:
# Remove all headers from our private frameworks
find "${TARGET_BUILD_DIR}" -name Headers -print0 | xargs -0 rm -rf
Run Code Online (Sandbox Code Playgroud)
这是做到这一点的方式,还是有更好的方法?
关于我的项目结构的更多信息:我在我的主项目中嵌套了三个Xcode项目,这些项目将我的私有框架作为他们的产品.框架被设置为我的主要目标的目标依赖项.设置的最后一部分是复制文件构建阶段,它接受框架并将它们复制到应用程序包内的Frameworks子文件夹中.(希望这很清楚.)
我正在尝试在 Mac OS X 的 Swift 应用程序中使用外部框架。外部框架也使用 Swift,因此依赖于 Swift 共享库(例如,libswiftCore.dylib)。这是通过命令验证的
$ otool -L PromiseKit.framework/PromiseKit
PromiseKit.framework/PromiseKit:
...
@rpath/libswiftCore.dylib (compatibility version 0.0.0, current version 0.0.0)
Run Code Online (Sandbox Code Playgroud)
抬头@rpath看见
$ otool -l PromiseKit.framework/PromiseKit
...
cmd LC_RPATH
cmdsize 40
path @executable_path/Frameworks (offset 12)
Run Code Online (Sandbox Code Playgroud)
所以在运行时我希望@rpath解决@executable_path/Frameworks
我收到运行时错误
$ otool -l PromiseKit.framework/PromiseKit
...
cmd LC_RPATH
cmdsize 40
path @executable_path/Frameworks (offset 12)
Run Code Online (Sandbox Code Playgroud)
查看包含我构建的可执行文件的文件夹,我没有看到Frameworks文件夹。
我尝试设置EMBEDDED_CONTENT_CONTAINS_SWIFT到YES我的应用程序,但是这仍然不能创建Frameworks文件夹。
我尝试手动创建Frameworks文件夹并在 Swift 共享库中复制(从/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx. …
例如,如何使用CoreGraphics和CoreFoundation在macOS上操纵屏幕和处理数据。