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

Invalid Bundle structure with a rogue .o file

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

Invalid Bundle Structure - The binary file 'MYAPPNAME.app/TCBConnection.o' is not permitted. Your app can’t contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. Refer to the Bundle Programming Guide at https://developer.apple.com/go/?id=bundle-structure for information on the iOS app bundle structure.

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

TCBConnection.swift(显示)文件的内容是苹果 Reachability.h/.mClass 的包装。

//
// 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 文件。 为什么会这样,我该如何解决?

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