小编Tom*_*ina的帖子

Xcode 6.3.1错误:等待获取模块"X"的锁定文件超时,其中"X"是我的框架

我的工作区中有以下项目:

  1. Common
  2. Security(取决于Common)
  3. Data(依赖于Common,Security(和CoreData))
  4. Api(依赖于Common,Security,Data)
  5. MyApp(依赖于Common,Security,Data,Api)

除了MyAppCocoa Touch Frameworks 之外的所有项目,主要是用Swift编写的.

从Xcode 6.3.1开始,我无法编译,因为我在构建"Api"框架时收到以下消息:

<unknown>:0: error: timed out waiting to acquire lock file for module 'Data'
~/Developer/myapp/src/Api/Api/SomeClass.swift:4:8: error: cannot load underlying module for 'Data'
import Data
       ^
Run Code Online (Sandbox Code Playgroud)

xcode module ios swift xcode6.3

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

如何在Xcode中编写覆盖Facebook登录的UI测试?

我想在Xcode中编写一个用于登录的UI测试FBDSKLoginKit.

然而,Facebook iOS SDK使用SFSafariViewController呈现给用户以便对她进行身份验证,遗憾的是,在Xcode 7中无法与SFSafariViewControllerUI测试进行交互.

任何想法如何测试Facebook登录而不与之交互SFSafariViewController

xcode facebook ios xctest xcode-ui-testing

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

Fabric/Crashlytics - 在问题详细信息中只显示记录消息的第一行

我在我的应用程序中使用Crashlytics崩溃和非致命错误报告已有一段时间了.我正在使用日志增强这两个报告,如下所述:https://docs.fabric.io/apple/crashlytics/enhanced-reports.html#custom-logging-in-swift

我最近注意到的是,如果我尝试在其中记录带换行符的消息,则换行符后面的所有文本都将被SDK删除,因此只有第一行在Crashlytics上可见.据我所知,过去这种方式不起作用.整个消息是可见的,并使用换行符正确格式化.

例:

let logMsg = "This is a multiline \n message \n Hope all lines are visible in Crashlytics." 
CLSLogv("%@", getVaList([logMsg])) 
Run Code Online (Sandbox Code Playgroud)

在Crashlytics中,只会记录此部分:

1 | 13:13:00:928 (UTC) | This is a multiline

这是一个错误吗?我可以阻止Crashlytics SDK执行此操作吗?现在,我错过了日志的一些重要部分.

logging ios crashlytics google-fabric

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

iOS13:如何在资产目录中为提升的用户界面级别指定颜色

iOS 13 为我们带来了UIUserInterfaceLevel,可以是.base.elevatedUIView当在黑暗模式下使用升高的级别时,系统似乎会自动调整提供的颜色。

但是,似乎没有办法在资产目录中手动指定.elevated颜色,是吗?

唯一的方法似乎是通过新的 UIColor 构造函数

UIColor.init { (traits) -> UIColor in
   traits.userInterfaceLevel == .elevated ? UIColor(named: "myColor-elevated")! : UIColor(named: "myColor")!
}
Run Code Online (Sandbox Code Playgroud)

uicolor uitraitcollection ios13 ios-darkmode

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

MergeSwiftModule - 在Xcode 6.3中构建一个Swift应用程序卡在"Merge MyApp.swiftmodule"中

在Xcode 6.3中构建应用程序会在步骤中卡住几分钟(大约10分钟)Merge MyApp.swiftmodule:

MergeSwiftModule normal x86_64 /Users/.../Library/Developer/Xcode/DerivedData/MyApp-crbdsfrhkvpiynaffvhzzsspiels/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp.swiftmodule
Run Code Online (Sandbox Code Playgroud)

这在以前版本的Xcode 6.2和Swift 1.0中不是问题.

ios swift xcode6.3

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

Swift - 有没有办法匹配错误而不抛出?

在某些情况下,错误作为参数提供而不是抛出。一个示例可以是所Result<T, Error>提供的完成处理程序。我想匹配错误而不抛出它。

通过抛出错误匹配的示例:

enum MyError: Error {
    case error
}

func process(error: Error) {
    do {
        throw error
    } catch MyError.error {
        print("this is it")
    } catch {
        print("unknown error")
    }
}

process(error: MyError.error)
Run Code Online (Sandbox Code Playgroud)

更新:

即使对于系统提供的错误(例如URLError不是enum类型的错误),匹配也应该有效。

func process(error: Error) {
    do {
        throw error
    } catch URLError.timedOut {
        print("this is not it")
    } catch URLError.cancelled {
        print("this is it")
    } catch {
        print("unknown error")
    }
}

process(error: URLError(.cancelled))
Run Code Online (Sandbox Code Playgroud)

swift

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