相关疑难解决方法(0)

静态库和Swift

所以我正在研究Swift中的iOS项目,我想创建一个包含一些有用内容的静态库.

我的问题是当我尝试在Xcode(版本6.3)中构建我的lib时,我有一个"Build Failed",然后是: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool: unknown option character 'X' in: -Xlinker

我从来没有见过这个,这不是我的第一个静态库.所以我在想我可能与我只使用Swift类这一事实有关.

你们有什么感想 ?先感谢您.

iphone xcode ios swift ios8.3

23
推荐指数
4
解决办法
3万
查看次数

dyld:未加载库:@ rpath/libswiftSwiftOnoneSupport.dylib

我已经构建了一个Swift框架,现在我正在尝试构建一个将使用该框架的Swift iOS应用程序.我收到这个错误:

dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib
  Referenced from: /Users/tdean/Library/Developer/Xcode/DerivedData/NFLApplication-ejmafvjrlqgjaabggwvadjarjjlg/Build/Products/Debug-iphonesimulator/NFLStatsModel.framework/NFLStatsModel
  Reason: image not found
Run Code Online (Sandbox Code Playgroud)

我搜索了SO并找到了类似的报告并尝试了其中列出的修复程序,包括:

  • 清除我的DerivedData文件夹
  • 重新启动Xcode和iPhone模拟器
  • 确保Always Embed Swift Standard Libraries = YES在我的框架和我的应用程序的构建设置中设置
  • 确保Enable Bitcode=NO在我的框架和我的应用程序的构建设置中设置
  • 确保Runpath Search Paths被设置为@executable_path/Frameworks,无论是在我的框架和我的应用程序的构建设置
  • 将我的Xcode安装中的所有libswift文件复制到项目中的本地副本中,并添加了自定义构建阶段以将这些文件复制到frameworks文件夹中.

在每种情况下,当我尝试运行我的应用程序时,我都会遇到相同的错误.

  • Xcode版本8.1(8B62)
  • Apple Swift 3.0.1版(swiftlang-800.0.58.6 clang-800.0.42.1)

xcode ios swift

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

如何创建静态库,并且可以在ios中的任何项目上添加.a文件

如何创建静态库,并且可以在ios中的任何项目上添加.a文件.

我试过这样做但是做不到.

提前致谢

xcode static-libraries objective-c++ ios4 ios

17
推荐指数
2
解决办法
5万
查看次数

如何在swift中使用.a静态库?

我想在swift中使用我的webrtc .a静态库.你能帮帮忙吗?我读过你不能在swift中使用静态库,这是真的吗?

static-libraries ios webrtc swift

17
推荐指数
3
解决办法
2万
查看次数

Xcode如何找到隐式目标依赖项?

Xcode有时会自动找到依赖项.当我是那个定义关系的人,当我变得懒惰时,我认为是可以的......

但更多的时候我发现自己面临着一个存在(中等到大尺寸)项目的目标.由于该项目是由其他人制作的,我发现很难理解哪些目标取决于什么,因为并非所有关系都是明确的.

Xcode用于查找此类关系的规则是什么?(我希望我能理解逻辑,所以在我的脑海中运行它并且可能在将来节省一些时间)或者是什么使目标有资格隐含地依赖于另一个?

目标及其创建的产品可能与另一个目标相关.如果目标需要另一个目标的输出以便构建,则说第一个目标依赖于第二个目标.如果两个目标都位于同一工作空间中,Xcode可以发现依赖关系,在这种情况下,它会按所需顺序构建产品.这种关系被称为隐式依赖.

来源:iOS开发者库→Xcode概念→Xcode目标

macos xcode ios

16
推荐指数
2
解决办法
5580
查看次数

“请勿嵌入”,“嵌入并签名”,“未经签名嵌入”。这些是什么?。他们做什么?

Xcode11 Beta的“框架,库和嵌入式内容”部分中有3个新选项可用于添加库。Xcode库部分屏幕截图

谁能解释他们的工作?

ios xcode11

10
推荐指数
4
解决办法
1427
查看次数

分发时如何在框架之外排除库?

我们创建了一个IOS框架,分发给各个人。但是现在我们遇到了一个有趣的问题。我们在框架中使用protobuf,我们的一位客户开始使用Expo Kit,该工具包最近也包含了protobuf,现在我们的客户因我们的框架而崩溃:

Class Foo is implemented in both ... One of the two will be used. Which one is undefined.
Run Code Online (Sandbox Code Playgroud)

我们不能使用Cocoapods Protobuf-ios,因为它已经过时了。

我能想到的唯一选择是在不包含此客户端的protobuf文件的情况下构建框架。因此,我们的框架将使用其Expo Kit profobuf文件。我该如何在Xcode中执行此操作,或者是否有替代解决方案。

编辑:

我想要实现的目标,但似乎并没有做到正确。我想发布没有Protobuf.a文件的Framework。Protobuf.a必须依赖于客户端应用程序。

xcode frameworks ios

8
推荐指数
1
解决办法
142
查看次数

在Xcode中创建组vs创建文件夹参考

我在使用Xcode时很好奇。

复制项目所需的开源类文件时,我总是需要选择一个选项。

选项为“创建组”和“创建文件夹引用”。

我已经阅读了两者之间的区别。

但这是完全不了解的。

当我选择两个选项之一时,我从项目中删除了该文件,并同时删除了开源类文件。

我不想要这个。

我希望始终作为独立文件存在。我应该选择什么?

xcode

6
推荐指数
4
解决办法
3029
查看次数

如何在包含Swift的iOS中创建开发框架?

我的目标是创建一个包含Swift和Objective-C的iOS框架,我可以在我的开发项目中使用它.该框架的本质是框架本身正在发展.因此,每次使用此框架构建项目时都很重要(我将使用"使用"项目的框架称为项目缺乏更好的术语),我想确保框架本身重新构建.我希望这是一个框架,因为我有一些使用应用程序,我希望使用相同的框架代码.我已经为今天的大部分时间而苦苦挣扎,并浪费了大量时间在本来应该做的事情上,至少在我的想法中,更容易.所以,我会分享我的过程.

frameworks ios swift xcode6 xcode7

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

分发依赖于静态框架的动态框架的正确方法是什么?

我正在构建一个闭源动态框架。它依赖于第三方闭源静态框架。

我将静态依赖框架链接到我的框架的项目/目标,如本 Apple 技术说明中所述:

在此输入图像描述

同一篇苹果技术说明中提到:

应用程序目标负责嵌入所有框架,包括其他框架依赖的任何框架。

所以我也给我的客户提供了我所依赖的框架的副本。然而,在同一份技术说明中,Apple(指嵌入静态库/框架)指出:

由于这些情况下的二进制文件是静态库,因此应用程序无法将其嵌入到应用程序包中。

...该库应保留在“将二进制文件与库链接”部分中。

没关系 - 所以我只是让我的客户链接静态框架依赖项而不是嵌入它,一切都工作正常。

-ObjC然而,当我的客户需要他们使用的其他库的链接器标志时,就会出现问题。此链接器标志导致我的(objective-c)静态框架依赖项加载其所有类两次,并且客户端在其控制台中随处可见重复的类日志。

这里一种可能的解决方案是让客户端识别他们使用的需要-ObjC链接器标志的库,并force_load为这些库指定标志。但在客户端使用 CocoaPods 的情况下,此解决方案也会导致问题,因为 CocoaPods 会-ObjC再次覆盖每个链接器标志的任何更改pod install对于这个问题还有其他解决方案/想法吗?

PS我知道之前的苹果技术说明也提到:

静态框架不是共享静态库的受支持方式。

但不幸的是,我目前受到业务限制的束缚,我必须包含这个静态框架依赖项。

xcode ios cocoapods

5
推荐指数
0
解决办法
775
查看次数

如何在Swift项目中添加框架?

我想向我的Swift项目添加一个库。我找到3个不同的地方要添加。
我想知道正确的做法以及每个人的目的。

常规选项卡

选择目标->一般

  • 嵌入二进制
  • 链接的框架和库

建立阶段

选择目标->构建阶段

  • 嵌入框架
  • 将二进制文件与库链接

新复制文件阶段

选择目标->单击+按钮->选择“新复制文件阶段”

  • 选择目的地作为框架
  • 选择框架

问题

  1. 什么时候需要“嵌入二进制文件”和“链接的框架和库”?何时需要进行第一阶段的构建?
  2. 我是否需要做多个这些事情才能添加框架?
  3. 它们之间有什么区别?

ios swift

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

在 xcode 10 中找不到架构 x86_64 的符号

我在我的 ios 项目中遇到了这个问题。在 xcode 中找不到架构 x86_64 的符号clang: error: linker command failed with exit code 1 (use -v to see invocation)

在此处输入图片说明

提前致谢!!

xcode ios

5
推荐指数
2
解决办法
2万
查看次数