-
Notifications
You must be signed in to change notification settings - Fork 1
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
chore: switch to an XcodeGen project file #32
chore: switch to an XcodeGen project file #32
Conversation
8f5f751
to
3b3eaf9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For some reason the runtime search paths for the frameworks has changed, despite the config looking mostly the same:
When starting the network extension I'm getting:
ASI found [dyld] (sensitive) 'Library not loaded: /Library/Frameworks/VPNLib.framework/Versions/A/VPNLib
Referenced from: <306B8001-A2DD-3B40-8152-B2257E804958> /Library/SystemExtensions/0EB23306-84D3-465D-9069-4140FD750438/com.coder.Coder-Desktop.VPN.systemextension/Contents/MacOS/com.coder.Coder-Desktop.VPN
Reason: tried: '/Library/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Library/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file)'
Previously, the build folder in XCode was included in the list of directories it would look for the library, not just the system stores I know this because the tried
list would include it when I had the same error before I embedded them, here's that error message:
ASI found [dyld] (sensitive) 'Library not loaded: @rpath/VPNLib.framework/Versions/A/VPNLib
Referenced from: <3CE45B2E-A079-384F-88F8-1CE9C94C7020> /Library/SystemExtensions/A55BDC5F-9B8D-4AEA-AFC7-B5D63AFADFD8/com.coder.Coder-Desktop.VPN.systemextension/Contents/MacOS/com.coder.Coder-Desktop.VPN
Reason: tried: '/Users/ethan/Library/Developer/Xcode/DerivedData/Coder_Desktop-ffdgfuvlnrlswxdjjgbkxtwmhuwc/Build/Products/Debug/PackageFrameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/ethan/Library/Developer/Xcode/DerivedData/Coder_Desktop-ffdgfuvlnrlswxdjjgbkxtwmhuwc/Build/Products/Debug/PackageFrameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Library/SystemExtensions/A55BDC5F-9B8D-4AEA-AFC7-B5D63AFADFD8/com.coder.Coder-Desktop.VPN.systemextension/Contents/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Library/SystemExtensions/Frameworks/VPNLib.framework/Versions/A/VPNLib' (no such file), '/Users/ethan/Library/Devel<…>'
But curiously:
This is on main
:
and this is on this branch:
Perhaps it could be worth scrapping the dynamic frameworks altogether, and just including the contents of VPNLib and CoderSDK as compile targets for the app and NE, i.e. this setting:
WDYT?
Coder Desktop/project.yml
Outdated
base: | ||
INFOPLIST_FILE: VPN/Info.plist | ||
PRODUCT_MODULE_NAME: "$(PRODUCT_NAME:c99extidentifier)" | ||
PRODUCT_NAME: "$(inherited)" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had to set PRODUCT_NAME
to $(PRODUCT_BUNDLE_IDENTIFIER
for the app to get the OS to prompt me to install the NE.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it's cause you have the base
setting for PRODUCT_NAME
set to $(TARGET_NAME)
:
PRODUCT_NAME: "$(TARGET_NAME)"
Whereas on main the base value for PRODUCT_NAME
is currently empty.
Setting that base value (changing the setting when the project is selected in XCode) causes it to inherit from that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does the PRODUCT_NAME: "$(PRODUCT_BUNDLE_IDENTIFIER)"
only apply to this system extension, or should I remove that default base value?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah only the system extension is $(inherited)
, everything else is $(TARGET_NAME)
(with ..:c99extidentifier
for the frameworks)
ea316ce
to
81bc611
Compare
81bc611
to
54eb681
Compare
Change-Id: I753a7652cdc730157ae7f8bc036338bae5e6b54b Signed-off-by: Thomas Kosiewski <[email protected]>
54eb681
to
4a91b6d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Coder Desktop runs end-to-end with this config, so LGTM!
This PR transitions the project from a manually maintained .xcodeproj file to an XcodeGen-managed project configuration.
It introduces a streamlined development workflow using XcodeGen to generate project files dynamically and includes necessary updates to documentation, .gitignore, and CI configuration.
Change-Id: I753a7652cdc730157ae7f8bc036338bae5e6b54b
Signed-off-by: Thomas Kosiewski [email protected]