标签: mac-frameworks

如何从自定义框架中删除标头?

我有一个使用几个自定义框架的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子文件夹中.(希望这很清楚.)

macos xcode frameworks mac-frameworks

5
推荐指数
1
解决办法
2490
查看次数

Swift 共享库为命令行应用程序静态链接?

我正在尝试在 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_SWIFTYES我的应用程序,但是这仍然不能创建Frameworks文件夹。

我尝试手动创建Frameworks文件夹并在 Swift 共享库中复制(从/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx. …

xcode dynamic-linking static-linking mac-frameworks swift

4
推荐指数
1
解决办法
2748
查看次数

如何在Go中使用macOS / OS X框架

例如,如何使用CoreGraphics和CoreFoundation在macOS上操纵屏幕和处理数据。

macos frameworks go mac-frameworks

2
推荐指数
1
解决办法
446
查看次数