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

Renaming PublicKey and PrivateKey Classes #257

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

kmy504
Copy link

@kmy504 kmy504 commented Nov 16, 2023

Hello,

Our project currently faces a significant name collision issue. Specifically, the PublicKey class is implemented in both the MessageProtection framework and the SwiftyRSA framework. This is causing the following warning message to appear:

objc[13599]: Class PublicKey is implemented in both /System/Library/PrivateFrameworks/MessageProtection.framework/MessageProtection (0x254bf2000) and /private/var/containers/Bundle/Application/9866BA82-B322-4442-BDD8-AD39140E4AEC/Band.app/Frameworks/SwiftyRSA.framework/SwiftyRSA (0x11354e1d0). One of the two will be used. Which one is undefined.

To resolve this issue, I propose renaming the PublicKey and PrivateKey classes within the SwiftyRSA framework to SwiftyRSAPublicKey and SwiftyRSAPrivateKey, respectively. This change will address the name collision and improve code readability and maintainability.

The changes are as follows:

PublicKey -> SwiftyRSA.PublicKey
PrivateKey -> SwiftyRSA.PrivateKey
I believe these changes will positively impact the project. I appreciate your review and feedback on this matter.

Thank you.

kmy504 and others added 3 commits November 16, 2023 12:56
- to SwiftyRSA.PublicKey, SwiftyRSA.PrivateKey
objc[13181]: Class PublicKey is implemented in both /System/Library/PrivateFrameworks/MessageProtection.framework/MessageProtection (0x24e9dbcc0) and /private/var/containers/Bundle/Application/AA0EFB35-6414-4395-98E5-1F3AFD934168/Band.app/Frameworks/SwiftyRSA.framework/SwiftyRSA (0x10f18a1e0). One of the two will be used. Which one is undefined.
Fixed 'Class PublicKey is implemented both'
@pc-scoop
Copy link
Contributor

pc-scoop commented Mar 4, 2024

@kmy504 This is good update and thanks for the contribution. I'll look into how this might affect our internal usage of the framework and get back on this.

@Misantrofia
Copy link

Hello,

When is this going to be merged? I have the same collision on my project.

@kmy504
Copy link
Author

kmy504 commented May 30, 2024

@pc-scoop Apple has been implement same name with PublicKey. So if some project use Apple's framework like MessageProtection framework, It would be cause name collision.

So I wrapped SwiftyRSA's struct that cause name collision with SwiftyRsa enum extension to look like a namespace.

@Misantrofia Use my forked repository before merge. :)

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.

3 participants