Have you tried to implement
- (void)netService:(NSNetService *)sender didNotPublish:(NSDictionary *)errorDict
method? it can sometimes provide useful information, although I also found that NSNetService also has strange behavior. Stopping NSNetService and republishing is an ugly option that seems to work for me to some extent.
source share