You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Undefined symbols for architecture x86_64:
"OBJC_CLASS$_ESPTouchTask", referenced from:
objc-class-ref in homeVC.o
"OBJC_CLASS$_ESPTools", referenced from:
objc-class-ref in addDeviceVC.o
objc-class-ref in homeVC.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
My code : the two files where the error originates :
import UIKit
import FBSDKLoginKit
import Firebase
import FBSDKCoreKit
import SystemConfiguration.CaptiveNetwork
import FirebaseFirestore
import FirebaseAuth
import SystemConfiguration.CaptiveNetwork
class homeVC: UIViewCon




troller, ESPTouchDelegate {
var userNameString: String?
let db = Firestore.firestore()
@IBAction func addSmartDevice(_ sender: UIButton) {
//let secretKey = "897219736"
// var aes : ESPAES
// aes = ESPAES.init(key: secretKey)
var task : ESPTouchTask
task = ESPTouchTask.init(apSsid: ESPTools.getCurrentWiFiSsid(), andApBssid: ESPTools.getCurrentBSSID(), andApPwd: "12345678")
task.setEsptouchDelegate(self)
//UIApplication.shared.windows[0].actv
//task.executeForResult()
task.setPackageBroadcast(true)
DispatchQueue.global(qos: .userInitiated).async {
let result = task.executeForResult()!
// 在主线程中显示结果
DispatchQueue.main.async {
// 隐藏等待框
// UIApplication.shared.windows[0].hideToastActivity()
// 重新启用连接按钮
//self.nextStepBtn.enable()
// 判断配置结果
if (result.isSuc) {
print("SUCCESS")
self.onEsptouchResultAdded(with: result)
//PASS EMAIL TO THE DEVICE
if let email = Auth.auth().currentUser?.email {
let url = URL(string: "http://192.168.1.199/get?email=\(email)")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
let emailTask = URLSession.shared.dataTask(with: request) { (data, response, error) in
guard let data = data,
let response = response as? HTTPURLResponse,
error == nil else
{
print("error", error ?? "Unknown Error")
return
}
let responseString = String(data : data, encoding : .utf8)
print("response String = \(responseString)")
}
emailTask.resume()
}
//END PASS EMAIL
}
else {
print("FAILURE")
}
}
}
}
func onEsptouchResultAdded(with result: ESPTouchResult!) {
print(result.description)
}
import UIKit
import SystemConfiguration.CaptiveNetwork
class addDeviceVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
printData()
// Do any additional setup after loading the view, typically from a nib.
ESPTools.getCurrentBSSID()
ESPTools.getCurrentBSSID()
}
func getSSID() -> String? {
guard let interface = (CNCopySupportedInterfaces() as? [String])?.first,
let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interface as CFString) as? [String: Any],
let ssid = unsafeInterfaceData["SSID"] as? String else{
return nil
}
return ssid
}
// Return IP address of WiFi interface (en0) as a String, or `nil`
func getWiFiAddress() -> String? {
var address : String?
// Get list of all interfaces on the local machine:
var ifaddr : UnsafeMutablePointer<ifaddrs>?
guard getifaddrs(&ifaddr) == 0 else { return nil }
guard let firstAddr = ifaddr else { return nil }
// For each interface ...
for ifptr in sequence(first: firstAddr, next: { $0.pointee.ifa_next }) {
let interface = ifptr.pointee
// Check for IPv4 or IPv6 interface:
let addrFamily = interface.ifa_addr.pointee.sa_family
if addrFamily == UInt8(AF_INET) || addrFamily == UInt8(AF_INET6) {
// Check interface name:
let name = String(cString: interface.ifa_name)
if name == "en0" {
// Convert interface address to a human readable string:
var hostname = [CChar](repeating: 0, count: Int(NI_MAXHOST))
getnameinfo(interface.ifa_addr, socklen_t(interface.ifa_addr.pointee.sa_len),
&hostname, socklen_t(hostname.count),
nil, socklen_t(0), NI_NUMERICHOST)
address = String(cString: hostname)
}
}
}
freeifaddrs(ifaddr)
return address
}
func getWiFiSsid() -> String? {
var ssid: String?
if let interfaces = CNCopySupportedInterfaces() as NSArray? {
for interface in interfaces {
if let interfaceInfo = CNCopyCurrentNetworkInfo(interface as! CFString) as NSDictionary? {
ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
}
}
}
return ssid
}
func getSSIDtwo() -> String? {
let interfaces = CNCopySupportedInterfaces()
if interfaces == nil {
//print("Not interfaces")
return nil
}
let interfacesArray = interfaces as! [String]
if interfacesArray.count <= 0 {
return nil
}
let interfaceName = interfacesArray[0] as String
let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName as CFString)
if unsafeInterfaceData == nil {
return nil
}
let interfaceData = unsafeInterfaceData as! Dictionary <String,AnyObject>
return interfaceData["SSID"] as? String
}
func printData() {
let one = getWiFiSsid();
let two = getSSIDtwo();
let three = getSSID();
print("PRINTING SSID DETAILS. PRINTING SSID DETAILS. SSID DETAILS FOLLOWING")
print(one);
print(two);
print(three);
}}
@Abhesheksh Have you been able to fix this error by chance? If yes, please share your solution with me. Currently, I got the error and still cannot fix it. I've tried many ways but with no success. Thank you
Hi, I don't have my system with me right now, I will get back to you with. I don't exactly remember what I did to sort this out but I think it was an issue with the bridging header itself. Let me check & get back to you in 48 hours.
Error :
Undefined symbols for architecture x86_64:
"OBJC_CLASS$_ESPTouchTask", referenced from:
objc-class-ref in homeVC.o
"OBJC_CLASS$_ESPTools", referenced from:
objc-class-ref in addDeviceVC.o
objc-class-ref in homeVC.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
My code : the two files where the error originates :
Bridging Header :
#ifndef Storme_Bridging_Header_h
#define Storme_Bridging_Header_h
#import "ESPTouch/esptouch/ESPTouchTask.h"
#import "ESPTouch/esptouch/ESPTouchResult.h"
#import "Common/ESPUtils/ESP_NetUtil.h"
#import "ESPTouch/esptouch/ESPTouchDelegate.h"
#import "Common/ESPUtils/ESPAES.h"
#import "Common/AFNetworking/AFNetworking.h"
#import "Common/ESPUtils/ESPTools.h"
#endif /* Storme_Bridging_Header_h */
The text was updated successfully, but these errors were encountered: