带有流氓.o文件的无效Bundle结构

时间:2017-09-26 12:31:13

标签: swift ipa xcode9

尝试使用Xcode 9验证存档构建。由于某种原因,Xcode将我的.swift文件之一转换为.o文件。这会导致验证失败。

  

无效的捆绑包结构 - 不允许使用二进制文件“MYAPPNAME.app/TCBConnection.o”。除了支持的捆绑包的有效CFBundleExecutable之外,您的应用程序不能包含独立的可执行文件或库。有关iOS应用程序包结构的信息,请参阅https://developer.apple.com/go/?id=bundle-structure上的Bundle Programming Guide。

显示为TCBConnection.o的文件实际上是.swift文件

TCBConnection.swift(显示)文件的内容是Apples Reachability.h/.m类的包装器。

//
// Connection.swift
//
// Created by TCB-iMAC on 24/11/2016.
// Copyright © 2016 TCB-iMAC. All rights reserved.
//

import UIKit

class TCBConnection: NSObject {


@objc class func isConnectedToInternet() -> Bool {

if (Reachability.forInternetConnection().currentReachabilityStatus() == NetworkStatus.NotReachable){

UIApplication.shared.keyWindow?.rootViewController?.present(Reachability.showNoNetworkUIAlertController(), animated: true, completion: {

})

return false
}

return true
}


}

我的项目中有Reachability.h的桥接头文件。

在设备或模拟器上测试和运行项目都可以正常工作。但由于某些原因,我无法验证存档,因为Xcode将.swift文件更改为.o文件。 为什么这样以及我如何解决它?

1 个答案:

答案 0 :(得分:1)

解决: 不得不复制(cmd + c)TCBConnection.swift文件的所有内容。删除文件。使新文件具有相同的名称,并在已删除文件的复制文本中粘贴(cmd + v)。问题解决了。