Firezone clients for macOS and iOS.
- Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Request your Firezone email added to our Apple Developer Account
- Open Xcode, go to Settings -> Account and log in. Click "Download manual profiles" button.
- Install signing keys from 1password "Engineering" vault.
Automatic signing has been disabled because it doesn't easily work with our CI/CD pipeline.
-
Clone this repo:
git clone https://github.com/firezone/firezone
-
cd
to the Apple clients codecd swift/apple
-
Copy an appropriate xcconfig and edit as necessary:
cp Firezone/xcconfig/debug.xcconfig Firezone/xcconfig/config.xcconfig vim Firezone/xcconfig/config.xcconfig
-
Open project in Xcode:
open Firezone.xcodeproj
- Build the Firezone target
This Network Extension debugging guide is a great resource to use as a starting point.
Network Extensions can't be debugged in the iOS simulator, so you'll need a physical iOS device or Mac to debug.
Try clearing your LaunchAgent db:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -delete
Note: You MUST reboot after doing this!
If you're making changes to the Network Extension and it doesn't seem to be reflected when you run/debug, it could be that PluginKit is still launching your old NetworkExtension. Try this to remove it:
pluginkit -v -m -D -i <bundle-id>
pluginkit -a <path>
pluginkit -r <path>
Occasionally you might encounter strange issues where it seems like the artifacts being debugged don't match the code, among other things. In these cases it's good to clean up using one of the methods below.
Removes cached packages, built extensions, etc.
rm -rf ~/Library/Developer/Xcode/DerivedData
To cleanup Swift build objects:
cd swift/apple
./cleanup.sh
To cleanup both Swift and Rust build objects:
cd swift/apple
./cleanup.sh all
rm -rf $HOME/Library/Group\ Containers/47R2M6779T.group.dev.firezone.firezone/Library/Caches/logs/connlib