【问题标题】:Compiler error: Invalid library file - CoreLocation编译器错误:无效的库文件 - CoreLocation
【发布时间】:2020-02-15 02:39:42
【问题描述】:

我有一个应用程序,它是在 Xcode 8 中创建的。我在该应用程序中使用了 CoreLocation 和 MapKit。

到目前为止,我已经用最新的iOS 更新了应用程序。它工作正常。现在我正在使用iOS 1 更新应用程序。所以我用Xcode 11.0 打开了应用程序并更新了所有必需的代码。还更新了 Xcode“执行更改”等建议的设置。

现在我运行应用程序,但出现如下错误:

Compiler error: Invalid library file

我搜索了很多,但找不到任何解决方案。这是新 Xcode 或新 iOS 中的错误吗?

我有什么需要做的额外更改或设置吗?请指导我。 这是 Apple 已知的错误吗?

编辑

2019-10-18 10:34:39.899827+0530 MapLocation[1697:57778] 编译器错误:库文件无效 2019-10-18 10:34:39.900098+0530 MapLocation[1697:57778] 编译器错误:库文件无效 2019-10-18 10:34:39.915973+0530 MapLocation[1697:57778] 编译器错误:库文件无效 2019-10-18 10:34:39.916228+0530 MapLocation[1697:57778] 编译器错误:库文件无效

2019-10-18 10:34:39.920608+0530 MapLocation[1697:57778] 更新坐标为: +/- 5.00m(速度 -1.00 mps / 航向 -1.00)@ 10/印度标准时间 18 月 19 日上午 10:34:39

2019-10-18 10:34:39.920697+0530 MapLocation[1697:57778] 纬度:- 23.0206,经度:- 72.5052

2019-10-18 10:34:39.925441+0530 MapLocation[1697:57778] 进入---->(纬度:- 23.0206,经度:- 72.5052),半径:- 300.00

2019-10-18 10:34:39.925546+0530 MapLocation[1697:57778] 陈述于---->(纬度:- 23.0206,经度:- 72.5052),半径:- 300.00

2019-10-18 10:34:39.926582+0530 MapLocation[1697:57778] 从 ----> 退出(纬度:- 23.0021,经度:- 72.4995),半径:- 300.00

2019-10-18 10:34:39.926683+0530 MapLocation[1697:57778] 陈述在---->(纬度:- 23.0021,经度:- 72.4995),半径:- 300.00

2019-10-18 10:34:39.932080+0530 MapLocation[1697:57778] 编译器错误:库文件无效 2019-10-18 10:34:39.932268+0530 MapLocation[1697:57778] 编译器错误:库文件无效 2019-10-18 10:34:39.948942+0530 MapLocation[1697:57778] 编译器错误:库文件无效 2019-10-18 10:34:39.949220+0530 MapLocation[1697:57778] 编译器错误:库文件无效

【问题讨论】:

  • 从你的其他标签猜测这是关于 Swift 编译器的?编译器错误非常取决于编译器和语言,所以以后不要忘记添加这些信息。
  • 我尝试过在Objective C中编写新程序。但同样...

标签: swift mapkit core-location ios13 xcode11


【解决方案1】:

对我来说,只有在我为地图开启交通时才会发生这种情况。

我让该功能保持开启状态,但在模拟器中将其关闭:

@IBOutlet
var mapView: MKMapView? {
    didSet {
        #if targetEnvironment(simulator)
        mapView?.showsTraffic = false
        #endif
    }
}

【讨论】:

  • 不,不是这样。
【解决方案2】:

我也遇到了问题,正在尝试更新多个折线坐标。

事实上,问题出在将新坐标推入包含折线坐标的数组(在我的例子中是模型对象的属性)的方式上。

为了解决这个问题,我只是将新坐标推送到该数组中。

为了解决这个问题,我必须先将该数组克隆到一个新的 var 中,然后将新坐标添加到克隆的数组中并更新模型属性。

以前,我在做:

existingArray.push(object);

现在,我正在做:

var newArray = [...existingArray];

newArray.push(object);

existingArray = newArray;

希望对你有帮助!

【讨论】:

  • 这段代码与 MKPolyline 对象或您正在使用的任何 MapKit 对象有什么关系?
  • 我遇到了同样的编译器错误,试图像你一样操作折线,但真正的问题来自数据加载到内存(状态)的方式。一旦我改变了数组的更新方式,编译器错误就消失了。
【解决方案3】:

我通过使用SwiftLog 记录我的消息来解决这个问题,在每个记录器的标签内放置一些唯一的字符串(可能只是 com.yourcompany.yourapp 来区分它),然后过滤到包含该标签的消息在控制台上。

更通用的解决方案是在控制台视图中设置一个否定过滤器,这样就无需以这种方式使用记录器。

【讨论】:

    【解决方案4】:

    我最近开始遇到这个错误,并且能够通过从硬件->擦除所有内容和设置...菜单项中清除模拟器来消除它。

    【讨论】:

      【解决方案5】:

      希望这将在下一个版本的 xcode 中得到修复。但是这只发生在模拟器上。暂时使用您的真实设备进行测试..

      【讨论】:

      • 是的,在真机上运行控制台不会出现这样的错误。
      【解决方案6】:

      我也看到了这个问题。仅当您为 MKMapView 实现 renderFor 覆盖时才会发生这种情况。如果没有此功能,我将无法显示添加到 mapView 的折线。这在 Xcode 10 中运行良好。

      【讨论】:

      • 当我在地图上制作圆形叠加层时,我遇到了同样的问题。此外,当我移动地图时,会打印这条线。
      • 2020 年 4 月问题仍然存在。
      • 2020 年 7 月 19 日仍然开放。XCode 11.6。
      • 这里相同,使用 Xcode 13 和 iOS 15 SDK...
      猜你喜欢
      • 2020-05-11
      • 2019-12-03
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多