Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supress deprecated symbols blocking App Store submission #55

Closed
wants to merge 4 commits into from

Conversation

franklyonnet
Copy link

@franklyonnet franklyonnet commented Aug 21, 2024

This change is Reviewable

@faern
Copy link
Member

faern commented Aug 21, 2024

This issue has been raised before. But it should have been "fixed". Please see this comment: #41 (comment)

Do you still have this issue, even if no code reference the kSCNetworkInterfaceTypeIrDA symbol? 🤔

@franklyonnet
Copy link
Author

Unfortunatelly yes, I still need to use my own fork. None of my code references kSCNetworkInterfaceTypeBridge nor kSCNetworkInterfaceTypeIrDA (my fork supresses the use of both symbols as they both led to the same style of rejection).
image

@faern
Copy link
Member

faern commented Aug 21, 2024

Strange. Yeah, the fix relied on those being optimized out, due to not being referenced by anything. Either that assumption is flaky, or you don't have enough optimizations turned on?

If we entirely remove these symbols, it's a breaking change in the sys crate, because we remove publicly accessible constants.

@faern
Copy link
Member

faern commented Aug 21, 2024

There is something strange here. This PR does not remove any reference to kSCNetworkInterfaceTypeBridge. That extern static reference was removed already in 3f2dcab. Are you sure it's this crate that create the error you are seeing? This is very confusing.

If the IrDA stuff do not cause you trouble, do you really need to remove it? I'm just trying to understand the problem and how this code change actually fixes it.

@franklyonnet
Copy link
Author

Ok. I see. In fact indeed, I'm forced to disable symbol striping because of the build system I have (combination of Swift/Rust/Flutter). This is why I'm hitting the issue.

@faern
Copy link
Member

faern commented Aug 21, 2024

But this crate has no reference to kSCNetworkInterfaceTypeBridge. So I'm not sure how this is the problem 🤔. Can you try to investigate a bit deeper which part of this PR actually fixes the error?

@franklyonnet
Copy link
Author

Indeed on the actual main branch I don't see kSCNetworkInterfaceTypeBridge anymore. I did the commit in April, that's why it's included in the PR. After checking my Cargo.lock I see one dependency that still rely on 0.5.1, this is likely the cause of the symbol inclusion. I will likely still have an issue with kSCNetworkInterfaceTypeIrDA as I'm not stripping symbols but I understand my setup is unusual. I'm closing the PR.

[[package]]
name = "if-watch"
version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e"
dependencies = [
"async-io 2.3.4",
"core-foundation",
"fnv",
"futures",
"if-addrs",
"ipnet",
"log",
"rtnetlink",
"system-configuration 0.5.1",
"tokio",
"windows 0.51.1",
]

@faern
Copy link
Member

faern commented Aug 22, 2024

Ok! You'll have to contact the if-watch maintainers and see if you can get this crate bumped then :)

We want this crate to build on iOS of course. We were hoping that symbol stripping would solve the issue. But if it does not, we might have to revisit this issue and do something similar to what you do in this PR. But it should be enough to remove the IrDA symbol from the sys crate only. Please get back to us if this is required to pass the App store submission!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants