У меня есть старое приложение, использующее GCDWebUploader из GCDWebServer для загрузки файлов в приложение. И копирую код реализации в новый проект.
Проблема: в этом новом проекте домашняя страница GCDWebServer может быть открыта в симуляторе iOS, но не может подключиться в реальном iPhone.
Среда: Xcode 12.2, iOS 14 CocoaPods
Это странно, так как у меня уже есть работающее приложение. Итак, я сделал несколько проверок:
- во-первых, старое приложение работает. Означает, что домашняя страница может быть открыта.
- все устройства находятся под одним Wi-Fi.
- попробуйте открыть
http://192.168.1.5/
илиhttp://192.168.1.5:80
в браузере, сафари сказал, что невозможно открыть страницу, потому что сервер не отвечает, однако я смог успешно пропинговать192.168.1.5
в терминале. - перезагрузить мой айфон
- сравнить info.plist между двумя проектами
Безрезультатно! Не могли бы вы, ребята, посоветовать, что я пропустил, может быть, какую-то конфигурацию в Xcode, чтобы разрешить HTTP-связь или какие-то возможности для включения?
Что в консоли:
[DEBUG] Did open IPv4 listening socket 3
[DEBUG] Did open IPv6 listening socket 4
[INFO] GCDWebUploader started on port 80 and reachable at http://192.168.1.5/
Visit http://192.168.1.5/ in your web browser
Код:
import GCDWebServer
import Foundation
class MyWebUploader {
// move webuploader to outside of init func to fix app crash issue.
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
lazy var webUploader = GCDWebUploader(uploadDirectory: self.documentsPath)
func initWebUploader() -> String {
var ipAddress = String()
webUploader.start()
webUploader.allowedFileExtensions = ["mp3", "aac", "m4a", "wav"]
if webUploader.serverURL != nil {
// retrieve IP address from URL
let str = webUploader.serverURL!.absoluteString
let start = str.index(str.startIndex, offsetBy: 7)
let end = str.index(str.endIndex, offsetBy: -1)
let range = start..<end
let mySubstring = str[range]
ipAddress = String(mySubstring)
print("Visit \(webUploader.serverURL!) in your web browser")
} else {
ipAddress = "No Wifi connected"
}
return ipAddress
}
func stopWebUploader() {
webUploader.stop()
}
}