About com.apple.developer.networking.multicast, i got same questions.
I have an app that via Wi-Fi to get information(name, battery level, etc.) about wi-fi connected speakers.
I found on Google that in iOS14.5 and later, you need to apply for this permission(com.apple.developer.networking.multicast) to use multicast. In fact, speaker can be searched in iOS14.4 and earlier , but not iOS14.5 and later.
However, I have upgraded to iOS15.1 and the speaker can be scanned without applying for this permission. May I ask why?
Or why isn't it available for multicast between iOS14.5 and 14.9? I didn't write this Wi-Fi communication method, but I saw in the comments that it uses multicast for data retrieval.
Post
Replies
Boosts
Views
Activity
I got my own app project which include a framework, when i try to install my app into my iPhone, Xcode display the log as below, and the app will be crash.
IoTWrappedRepresentation is the method from the framework.
Reactive-Smart-Reference is my app name
AIoTControllerSDK_swift is my framework name
objc[26097]: Class IoTWrappedRepresentation is implemented in both /private/var/containers/Bundle/Application/95BA51A0-5E83-453D-B25C-23AFF1675E21/Reactive-Smart-Reference.app/Frameworks/TAIoTControllerSDK_swift.framework/TAIoTControllerSDK_swift (0x102e786b0) and /private/var/containers/Bundle/Application/95BA51A0-5E83-453D-B25C-23AFF1675E21/Reactive-Smart-Reference.app/Reactive-Smart-Reference (0x100f400c8). One of the two will be used. Which one is undefined.
When i trying to install the app into my iPhone, Xcode display this issue,
Unable to install "Reactive-Smart-Reference"
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620375
User Info: {
IDERunOperationFailingWorker = IDEInstalliPhoneLauncher;
}
--
The code signature version is no longer supported.
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620375
--
System Information
macOS Version 12.0.1 (Build 21A559)
Xcode 13.1 (19466) (Build 13A1030d)
Timestamp: 2021-11-18T13:44:03+08:00
And this is my project structure, IoTivity includes C++ & static lib, ControllerSDK using IoTivity as development environment, MyApp using ControllerSDK
- project
-- MyAppCode
-- Pods
--- ControllerSDK
-- IoTivity
So when i click the NavigationLink on MyDeviceView, then it's going to called BLEService.connect().
If app has not connected successfully, isDeviceConnected is false by default, and the view showing Text("Loading")
When the connection succeeds, BLEService.isDeviceConnected is changed to true by method BLEService.didChangeDevice, then the view will display Text("Detail")
So now, here is the issue, When isDeviceConnected becomes true, the ConfigurationView will display the Test("Detail"), but after 1s it will automatically go back to MyDeviceView.
This only happens in iOS15, older versions don't.
struct MyDeviceView: View {
@EnvironmentObject private var onboardService: BLEService
var body: some View {
NavigationLink(destination: ConfigurationView().onAppear{
onboardService.connect(to: row.id)
}) {
BaseRowView(title: row.title)
}
}
}
struct ConfigurationView: View {
@EnvironmentObject private var onboardService: BLEService
var body: some View {
if onboardService.isDeviceConnected {
Test("Detail")
} else {
Test("Loading")
}
}
}
final class BLEService: NSObject, ObservableObject {
@Published var isDeviceConnected = false
func connect(to uuid: UUID) {
guard let selectedDevice = bleDeviceList.first(where: {
$0.id == uuid
}) else { return }
TABleManager.shareInstance().connectDevice(selectedDevice.peripheral)
}
}
extension BLEService: ManagerDelegate {
func didConnectDevice(_ device: CBPeripheral) {
isDeviceConnected = true
}
}
In my MainView, When I click on "Connect Button", ConnectView is perfectly displayed, but inside the MyDeviceView, When I click on DeviceConfigurationView or BLEDeviceConfigurationView, they goes back to parent page MainView.
This is only available in iOS15, so it's not a problem in previous versions
// MainView
VStack {
// Connect button
NavigationLink(destination: ConnectView(), label: {
Text("connect")
})
MyDeviceView()
}
struct MyDeviceView: View {
@EnvironmentObject private var ioTControllerService: IoTControllerService
@EnvironmentObject private var onboardService: BLEService
var body: some View {
BaseList(sections: ioTControllerService.iotDeviceListSection) { row in
NavigationLink(destination: DeviceConfigurationView(serialNumber: row.serialNumber, deviceUUID: row.id, viewModel: DeviceConfigurationViewViewModel())) {
BaseRowView(title: row.title)
}
}
BaseList(sections: onboardService.bleDeviceListSections) { row in
NavigationLink(destination: BLEDeviceConfigurationView(deviceUUID: row.id, viewModel: BLEDeviceConfigurationViewViewModel()).onAppear{
onboardService.connect(to: row.id)
}) {
BaseRowView(title: row.title)
}
}
}
}
struct BaseList<Content: View>: View {
// MARK: - Properties
/// Data model
var sections: [BaseListSection]
/// Custom row view
var contentProvider: (BaseListSection.Row) -> Content
// MARK: - Life Cycle
/// Base List Initializer
/// - Parameters:
/// - sections: Sections data
/// - contentProvider: Row view
init(sections: [BaseListSection], @ViewBuilder contentProvider: @escaping (BaseListSection.Row) -> Content) {
self.sections = sections
self.contentProvider = contentProvider
}
var body: some View {
List {
ForEach(sections) { section in
Section(header: Text(section.sectionTitle)) {
ForEach(section.rows) { row in
self.contentProvider(row)
}
}
}
}
.listStyle(GroupedListStyle())
}
}
Guys, Xcode displays this issue when my app wants to run to the physical device.
The code signature version is no longer supported.
Unable to install "Reactive-Smart-Reference"
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620375
User Info: {
IDERunOperationFailingWorker = IDEInstalliPhoneLauncher;
}
--
The code signature version is no longer supported.
Domain: com.apple.dt.MobileDeviceErrorDomain
Code: -402620375
--
System Information
macOS Version 12.0.1 (Build 21A559)
Xcode 13.1 (19466) (Build 13A1030d)
Timestamp: 2021-11-18T13:44:03+08:00
In my certificate list, I see a certificate type called “iOS Distribution Managed”. What is the difference between this and “iOS Distribution”?
It's kind of automatic. I don't remember creating it