mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
Refactor xcconfig structure (#2333)
- Conditionally set Automatic or Manual provisioning from env (Fixes #2326) - Refactor xcconfig structure to make configuring the project simpler across different envs - Use consistent parentheses in Makefiles and xcconfigs (Refs #2324) (Fixes #2334)
This commit is contained in:
11
.github/workflows/swift.yml
vendored
11
.github/workflows/swift.yml
vendored
@@ -2,10 +2,6 @@ name: Swift
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
env:
|
||||
# TODO: Change this to "prod" when app is released
|
||||
CLIENT_ENV: staging
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.runs-on }}
|
||||
@@ -119,13 +115,14 @@ jobs:
|
||||
# Needed because `productbuild` doesn't support picking this up automatically like Xcode does
|
||||
INSTALLER_CODE_SIGN_IDENTITY: "3rd Party Mac Developer Installer: Firezone, Inc. (47R2M6779T)"
|
||||
REQUESTED_XCODE_VERSION: ${{ matrix.xcode }}
|
||||
# TODO: Change this to "prod" when app is released
|
||||
XCCONFIG_ENV: staging
|
||||
run: |
|
||||
# Set Xcode version to use if provided
|
||||
[[ ! -z "$REQUESTED_XCODE_VERSION" ]] && sudo xcode-select -s /Applications/Xcode_$REQUESTED_XCODE_VERSION.app
|
||||
|
||||
# Copy xcconfig templates
|
||||
cp Firezone/xcconfig/Developer.xcconfig.firezone Firezone/xcconfig/Developer.xcconfig
|
||||
cp Firezone/xcconfig/Server.xcconfig.${{ env.CLIENT_ENV }} Firezone/xcconfig/Server.xcconfig
|
||||
# Copy xcconfig
|
||||
cp Firezone/xcconfig/${{ env.XCCONFIG_ENV }}.xcconfig Firezone/xcconfig/config.xcconfig
|
||||
|
||||
# App Store Connect requires a new build version on each upload and it must be an integer.
|
||||
# See https://developer.apple.com/documentation/xcode/build-settings-reference#Current-Project-Version
|
||||
|
||||
3
swift/apple/.gitignore
vendored
3
swift/apple/.gitignore
vendored
@@ -5,6 +5,5 @@ DerivedData/
|
||||
xcuserdata/
|
||||
**/*.xcuserstate
|
||||
|
||||
Firezone/xcconfig/Developer.xcconfig
|
||||
Firezone/xcconfig/Server.xcconfig
|
||||
Firezone/xcconfig/config.xcconfig
|
||||
FirezoneNetworkExtension/Connlib
|
||||
|
||||
@@ -101,7 +101,6 @@
|
||||
05CF1CF6290B1CEE00CF4755 /* FirezoneNetworkExtension_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = FirezoneNetworkExtension_iOS.entitlements; sourceTree = "<group>"; };
|
||||
05CF1D03290B1DCD00CF4755 /* FirezoneNetworkExtensionmacOS.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = FirezoneNetworkExtensionmacOS.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
05D3BB1628FDBD8A00BC3727 /* NetworkExtension.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NetworkExtension.framework; path = System/Library/Frameworks/NetworkExtension.framework; sourceTree = SDKROOT; };
|
||||
6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = AllConfigs.xcconfig; path = xcconfig/AllConfigs.xcconfig; sourceTree = "<group>"; };
|
||||
6FA39A032A6A7248000F0157 /* NetworkResource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkResource.swift; sourceTree = "<group>"; };
|
||||
6FE454EA2A5BFABA006549B1 /* Adapter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Adapter.swift; sourceTree = "<group>"; };
|
||||
6FE455082A5D110D006549B1 /* CallbackHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallbackHandler.swift; sourceTree = "<group>"; };
|
||||
@@ -117,6 +116,7 @@
|
||||
8DCC022728D512AE007E12D2 /* Firezone.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Firezone.entitlements; sourceTree = "<group>"; };
|
||||
8DCC022928D512AE007E12D2 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
|
||||
8DD2C4C3297B37BA00F984BF /* FirezoneKit */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = FirezoneKit; sourceTree = "<group>"; };
|
||||
8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = config.xcconfig; path = xcconfig/config.xcconfig; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -219,7 +219,7 @@
|
||||
8DCC021B28D512AC007E12D2 /* Firezone */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */,
|
||||
8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */,
|
||||
05E1505F28FF398000170F82 /* Application */,
|
||||
8DCC022528D512AE007E12D2 /* Assets.xcassets */,
|
||||
8DCC022728D512AE007E12D2 /* Firezone.entitlements */,
|
||||
@@ -254,8 +254,8 @@
|
||||
buildConfigurationList = 6FE454BD2A5BC5F3006549B1 /* Build configuration list for PBXLegacyTarget "Build Connlib" */;
|
||||
buildPhases = (
|
||||
);
|
||||
buildToolPath = "${CONNLIB_SOURCE_DIR}/build-rust.sh";
|
||||
buildWorkingDirectory = "${CONNLIB_SOURCE_DIR}";
|
||||
buildToolPath = "$(CONNLIB_SOURCE_DIR)/build-rust.sh";
|
||||
buildWorkingDirectory = "$(CONNLIB_SOURCE_DIR)";
|
||||
dependencies = (
|
||||
);
|
||||
name = "Build Connlib";
|
||||
@@ -545,9 +545,10 @@
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_iOS.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "$(inherited)";
|
||||
CODE_SIGN_STYLE = "$(inherited)";
|
||||
CURRENT_PROJECT_VERSION = 0;
|
||||
DEVELOPMENT_TEAM = "$(inherited)";
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
|
||||
@@ -558,15 +559,15 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "${CONNLIB_TARGET_DIR}/aarch64-apple-ios/debug";
|
||||
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(CONNLIB_TARGET_DIR)/aarch64-apple-ios/debug";
|
||||
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
|
||||
MARKETING_VERSION = 1.20231001.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
OTHER_LDFLAGS = "-lconnlib";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "23402aaa-f72c-4947-a795-23a9cf495968";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -586,9 +587,10 @@
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_iOS.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "$(inherited)";
|
||||
CODE_SIGN_STYLE = "$(inherited)";
|
||||
CURRENT_PROJECT_VERSION = 0;
|
||||
DEVELOPMENT_TEAM = "$(inherited)";
|
||||
FRAMEWORK_SEARCH_PATHS = "";
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
|
||||
@@ -599,14 +601,14 @@
|
||||
"@executable_path/Frameworks",
|
||||
"@executable_path/../../Frameworks",
|
||||
);
|
||||
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "${CONNLIB_TARGET_DIR}/aarch64-apple-ios/release";
|
||||
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]" = "$(CONNLIB_TARGET_DIR)/aarch64-apple-ios/release";
|
||||
MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
|
||||
MARKETING_VERSION = 1.20231001.0;
|
||||
OTHER_LDFLAGS = "-lconnlib";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "23402aaa-f72c-4947-a795-23a9cf495968";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -626,10 +628,11 @@
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_macOS.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "$(inherited)";
|
||||
CODE_SIGN_STYLE = "$(inherited)";
|
||||
CURRENT_PROJECT_VERSION = 0;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "$(inherited)";
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
|
||||
@@ -646,10 +649,10 @@
|
||||
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(CONNLIB_TARGET_DIR)/x86_64-apple-darwin/debug";
|
||||
MARKETING_VERSION = 1.20231001.0;
|
||||
OTHER_LDFLAGS = "-lconnlib";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "1e965794-0b2c-46d3-a955-d96aacf25546";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SUPPORTED_PLATFORMS = macosx;
|
||||
@@ -668,10 +671,11 @@
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = FirezoneNetworkExtension/FirezoneNetworkExtension_macOS.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "$(inherited)";
|
||||
CODE_SIGN_STYLE = "$(inherited)";
|
||||
CURRENT_PROJECT_VERSION = 0;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEVELOPMENT_TEAM = "$(inherited)";
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
INFOPLIST_FILE = FirezoneNetworkExtension/Info.plist;
|
||||
@@ -688,10 +692,10 @@
|
||||
"LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(CONNLIB_TARGET_DIR)/x86_64-apple-darwin/release";
|
||||
MARKETING_VERSION = 1.20231001.0;
|
||||
OTHER_LDFLAGS = "-lconnlib";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}.network-extension";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited).network-extension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "1e965794-0b2c-46d3-a955-d96aacf25546";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SUPPORTED_PLATFORMS = macosx;
|
||||
@@ -731,7 +735,7 @@
|
||||
};
|
||||
8DCC024128D512AE007E12D2 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */;
|
||||
baseConfigurationReference = 8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
@@ -762,6 +766,8 @@
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CONNLIB_SOURCE_DIR = "$(PROJECT_DIR)/../../rust/connlib/clients/apple";
|
||||
CONNLIB_TARGET_DIR = "$(PROJECT_DIR)/../../rust/target";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
@@ -794,7 +800,7 @@
|
||||
};
|
||||
8DCC024228D512AE007E12D2 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 6F68E44B2A588522003C7D08 /* AllConfigs.xcconfig */;
|
||||
baseConfigurationReference = 8DDD0E8B2ADC6657001FA7E9 /* config.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
@@ -825,6 +831,8 @@
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CONNLIB_SOURCE_DIR = "$(PROJECT_DIR)/../../rust/connlib/clients/apple";
|
||||
CONNLIB_TARGET_DIR = "$(PROJECT_DIR)/../../rust/target";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
@@ -856,12 +864,11 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Firezone/Firezone.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "$(inherited)";
|
||||
CODE_SIGN_STYLE = "$(inherited)";
|
||||
CURRENT_PROJECT_VERSION = 0;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEFINES_MODULE = NO;
|
||||
DEVELOPMENT_ASSET_PATHS = "\"Firezone/Preview Content\"";
|
||||
DEVELOPMENT_TEAM = "$(inherited)";
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@@ -879,11 +886,11 @@
|
||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
||||
MARKETING_VERSION = 1.20231001.0;
|
||||
OTHER_LDFLAGS = "";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "b32a5853-699d-4f19-85d3-5b13b1ac5dbb";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "70055d90-0252-4ee5-a60c-4d6f3840ee62";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
SDKROOT = auto;
|
||||
SUPPORTED_PLATFORMS = "iphoneos macosx";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
@@ -906,12 +913,13 @@
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Firezone/Firezone.entitlements;
|
||||
CODE_SIGN_IDENTITY = "Apple Distribution: Firezone, Inc. (47R2M6779T)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CODE_SIGN_IDENTITY = "$(inherited)";
|
||||
CODE_SIGN_STYLE = "$(inherited)";
|
||||
CURRENT_PROJECT_VERSION = 0;
|
||||
DEAD_CODE_STRIPPING = YES;
|
||||
DEFINES_MODULE = NO;
|
||||
DEVELOPMENT_ASSET_PATHS = "\"Firezone/Preview Content\"";
|
||||
DEVELOPMENT_TEAM = "$(inherited)";
|
||||
ENABLE_HARDENED_RUNTIME = YES;
|
||||
ENABLE_PREVIEWS = YES;
|
||||
GENERATE_INFOPLIST_FILE = YES;
|
||||
@@ -928,12 +936,12 @@
|
||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
|
||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
||||
MARKETING_VERSION = 1.20231001.0;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "${APP_ID}";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "$(inherited)";
|
||||
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "b32a5853-699d-4f19-85d3-5b13b1ac5dbb";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "70055d90-0252-4ee5-a60c-4d6f3840ee62";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "$(IOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "$(MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER)";
|
||||
SDKROOT = auto;
|
||||
SUPPORTED_PLATFORMS = "iphoneos macosx";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<true/>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>${APP_GROUP_ID}</string>
|
||||
<string>$(APP_GROUP_ID)</string>
|
||||
</array>
|
||||
<key>com.apple.security.files.user-selected.read-write</key>
|
||||
<true/>
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
</dict>
|
||||
</array>
|
||||
<key>AppGroupIdentifier</key>
|
||||
<string>${APP_GROUP_ID}</string>
|
||||
<string>$(APP_GROUP_ID)</string>
|
||||
<key>AuthURLScheme</key>
|
||||
<string>$(AUTH_URL_SCHEME)</string>
|
||||
<key>AuthURLHost</key>
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
#include "Developer.xcconfig"
|
||||
#include "Server.xcconfig"
|
||||
#include "Build.xcconfig"
|
||||
@@ -1,5 +0,0 @@
|
||||
CONNLIB_SOURCE_DIR=${PROJECT_DIR}/../../rust/connlib/clients/apple
|
||||
CONNLIB_TARGET_DIR=${PROJECT_DIR}/../../rust/target
|
||||
|
||||
APP_GROUP_ID[sdk=macosx*] = ${DEVELOPMENT_TEAM}.group.${APP_ID}
|
||||
APP_GROUP_ID[sdk=iphoneos*] = group.${APP_ID}
|
||||
@@ -1,2 +0,0 @@
|
||||
DEVELOPMENT_TEAM = 47R2M6779T
|
||||
APP_ID = dev.firezone.firezone
|
||||
@@ -1,7 +0,0 @@
|
||||
// You Apple developer account's Team ID
|
||||
DEVELOPMENT_TEAM = <team_id>
|
||||
|
||||
// The bundle identifier of the apps.
|
||||
// Should be an app id created at developer.apple.com
|
||||
// with Network Extensions capability.
|
||||
APP_ID = <app_id>
|
||||
@@ -1,4 +0,0 @@
|
||||
AUTH_URL_SCHEME = http
|
||||
AUTH_URL_HOST = localhost:8080
|
||||
CONTROL_PLANE_URL_SCHEME = ws
|
||||
CONTROL_PLANE_URL_HOST = localhost:8081
|
||||
@@ -1,4 +0,0 @@
|
||||
AUTH_URL_SCHEME = https
|
||||
AUTH_URL_HOST = app.firez.one
|
||||
CONTROL_PLANE_URL_SCHEME = wss
|
||||
CONTROL_PLANE_URL_HOST = api.firez.one
|
||||
@@ -1,13 +0,0 @@
|
||||
// This file configures the Authentication URL and the Control Plane URL
|
||||
|
||||
// http or https
|
||||
AUTH_URL_SCHEME = <auth_uri_scheme>
|
||||
|
||||
// auth host and optional port, e.g. app.firezone.dev:443
|
||||
AUTH_URL_HOST = <auth_uri_host>
|
||||
|
||||
// websocket scheme, ws or wss
|
||||
CONTROL_PLANE_URL_SCHEME = <control_plane_websocket_uri_scheme>
|
||||
|
||||
// control plane host and optional port, e.g. app.firezone.dev:443
|
||||
CONTROL_PLANE_URL_HOST = <control_plane_websocket_uri_host>
|
||||
12
swift/apple/Firezone/xcconfig/dev.xcconfig
Normal file
12
swift/apple/Firezone/xcconfig/dev.xcconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
// Apple Developer account-specific configuration
|
||||
DEVELOPMENT_TEAM = 47R2M6779T
|
||||
PRODUCT_BUNDLE_IDENTIFIER = dev.firezone.firezone
|
||||
APP_GROUP_ID[sdk=macosx*] = 47R2M6779T.group.dev.firezone.firezone
|
||||
APP_GROUP_ID[sdk=iphoneos*] = group.dev.firezone.firezone
|
||||
CODE_SIGN_STYLE = Automatic
|
||||
|
||||
// Portal Auth
|
||||
AUTH_URL_SCHEME = http
|
||||
AUTH_URL_HOST = localhost:8080
|
||||
CONTROL_PLANE_URL_SCHEME = ws
|
||||
CONTROL_PLANE_URL_HOST = localhost:8081
|
||||
17
swift/apple/Firezone/xcconfig/prod.xcconfig
Normal file
17
swift/apple/Firezone/xcconfig/prod.xcconfig
Normal file
@@ -0,0 +1,17 @@
|
||||
// Apple Developer account-specific configuration
|
||||
DEVELOPMENT_TEAM = 47R2M6779T
|
||||
PRODUCT_BUNDLE_IDENTIFIER = dev.firezone.firezone
|
||||
APP_GROUP_ID[sdk=macosx*] = 47R2M6779T.group.dev.firezone.firezone
|
||||
APP_GROUP_ID[sdk=iphoneos*] = group.dev.firezone.firezone
|
||||
CODE_SIGN_STYLE = Manual
|
||||
CODE_SIGN_IDENTITY = Apple Distribution: Firezone, Inc. (47R2M6779T)
|
||||
IOS_APP_PROVISIONING_PROFILE_IDENTIFIER = b32a5853-699d-4f19-85d3-5b13b1ac5dbb
|
||||
MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER = 70055d90-0252-4ee5-a60c-4d6f3840ee62
|
||||
IOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 23402aaa-f72c-4947-a795-23a9cf495968
|
||||
MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 1e965794-0b2c-46d3-a955-d96aacf25546
|
||||
|
||||
// Portal Auth
|
||||
AUTH_URL_SCHEME = https
|
||||
AUTH_URL_HOST = app.firezone.dev
|
||||
CONTROL_PLANE_URL_SCHEME = wss
|
||||
CONTROL_PLANE_URL_HOST = api.firezone.dev
|
||||
17
swift/apple/Firezone/xcconfig/staging.xcconfig
Normal file
17
swift/apple/Firezone/xcconfig/staging.xcconfig
Normal file
@@ -0,0 +1,17 @@
|
||||
// Apple Developer account-specific configuration
|
||||
DEVELOPMENT_TEAM = 47R2M6779T
|
||||
PRODUCT_BUNDLE_IDENTIFIER = dev.firezone.firezone
|
||||
APP_GROUP_ID[sdk=macosx*] = 47R2M6779T.group.dev.firezone.firezone
|
||||
APP_GROUP_ID[sdk=iphoneos*] = group.dev.firezone.firezone
|
||||
CODE_SIGN_STYLE = Manual
|
||||
CODE_SIGN_IDENTITY = Apple Distribution: Firezone, Inc. (47R2M6779T)
|
||||
IOS_APP_PROVISIONING_PROFILE_IDENTIFIER = b32a5853-699d-4f19-85d3-5b13b1ac5dbb
|
||||
MACOS_APP_PROVISIONING_PROFILE_IDENTIFIER = 70055d90-0252-4ee5-a60c-4d6f3840ee62
|
||||
IOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 23402aaa-f72c-4947-a795-23a9cf495968
|
||||
MACOS_NE_PROVISIONING_PROFILE_IDENTIFIER = 1e965794-0b2c-46d3-a955-d96aacf25546
|
||||
|
||||
// Portal Auth
|
||||
AUTH_URL_SCHEME = https
|
||||
AUTH_URL_HOST = app.firez.one
|
||||
CONTROL_PLANE_URL_SCHEME = wss
|
||||
CONTROL_PLANE_URL_HOST = api.firez.one
|
||||
@@ -13,12 +13,12 @@ struct AppInfoPlistConstants {
|
||||
guard let urlScheme = (infoPlistDictionary?["AuthURLScheme"] as? String), !urlScheme.isEmpty
|
||||
else {
|
||||
fatalError(
|
||||
"AuthURLScheme missing in app's Info.plist. Please define AUTH_URL_SCHEME in Server.xcconfig."
|
||||
"AuthURLScheme missing in app's Info.plist. Please define AUTH_URL_SCHEME in config.xcconfig."
|
||||
)
|
||||
}
|
||||
guard let urlHost = (infoPlistDictionary?["AuthURLHost"] as? String), !urlHost.isEmpty else {
|
||||
fatalError(
|
||||
"AuthURLHost missing in app's Info.plist. Please define AUTH_URL_HOST in Server.xcconfig.")
|
||||
"AuthURLHost missing in app's Info.plist. Please define AUTH_URL_HOST in config.xcconfig.")
|
||||
}
|
||||
let urlString = "\(urlScheme)://\(urlHost)/"
|
||||
guard let url = URL(string: urlString) else {
|
||||
@@ -33,13 +33,13 @@ struct AppInfoPlistConstants {
|
||||
!urlScheme.isEmpty
|
||||
else {
|
||||
fatalError(
|
||||
"ControlPlaneURLScheme missing in app's Info.plist. Please define CONTROL_PLANE_URL_SCHEME in Server.xcconfig."
|
||||
"ControlPlaneURLScheme missing in app's Info.plist. Please define CONTROL_PLANE_URL_SCHEME in config.xcconfig."
|
||||
)
|
||||
}
|
||||
guard let urlHost = (infoPlistDictionary?["ControlPlaneURLHost"] as? String), !urlHost.isEmpty
|
||||
else {
|
||||
fatalError(
|
||||
"ControlPlaneURLHost missing in app's Info.plist. Please define CONTROL_PLANE_URL_HOST in Server.xcconfig."
|
||||
"ControlPlaneURLHost missing in app's Info.plist. Please define CONTROL_PLANE_URL_HOST in config.xcconfig."
|
||||
)
|
||||
}
|
||||
let urlString = "\(urlScheme)://\(urlHost)/"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</array>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>${APP_GROUP_ID}</string>
|
||||
<string>$(APP_GROUP_ID)</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</array>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
<array>
|
||||
<string>${APP_GROUP_ID}</string>
|
||||
<string>$(APP_GROUP_ID)</string>
|
||||
</array>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<true/>
|
||||
|
||||
@@ -10,6 +10,6 @@
|
||||
<string>$(PRODUCT_MODULE_NAME).PacketTunnelProvider</string>
|
||||
</dict>
|
||||
<key>AppGroupIdentifier</key>
|
||||
<string>${APP_GROUP_ID}</string>
|
||||
<string>$(APP_GROUP_ID)</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -27,16 +27,11 @@ CI/CD pipeline.
|
||||
cd swift/apple
|
||||
```
|
||||
|
||||
1. Rename and populate xcconfig files:
|
||||
1. Copy an appropriate xcconfig and edit as necessary:
|
||||
|
||||
```bash
|
||||
cp Firezone/xcconfig/Developer.xcconfig.firezone Firezone/xcconfig/Developer.xcconfig
|
||||
vim Firezone/xcconfig/Developer.xcconfig
|
||||
```
|
||||
|
||||
```bash
|
||||
cp Firezone/xcconfig/Server.xcconfig.template Firezone/xcconfig/Server.xcconfig
|
||||
vim Firezone/xcconfig/Server.xcconfig
|
||||
cp Firezone/xcconfig/dev.xcconfig Firezone/xcconfig/config.xcconfig
|
||||
vim Firezone/xcconfig/config.xcconfig
|
||||
```
|
||||
|
||||
1. Open project in Xcode:
|
||||
@@ -45,7 +40,7 @@ CI/CD pipeline.
|
||||
open Firezone.xcodeproj
|
||||
```
|
||||
|
||||
Build the Firezone target
|
||||
1. Build the Firezone target
|
||||
|
||||
## Debugging
|
||||
|
||||
|
||||
@@ -14,9 +14,9 @@ fi
|
||||
DEST=./FirezoneNetworkExtension/Connlib
|
||||
if [[ -n "$CONNLIB_SOURCE_DIR" ]]; then
|
||||
set -x
|
||||
rm -rf ${DEST}
|
||||
find ${CONNLIB_SOURCE_DIR}/Sources/Connlib
|
||||
cp -r ${CONNLIB_SOURCE_DIR}/Sources/Connlib ${DEST}
|
||||
rm -rf $DEST
|
||||
find $CONNLIB_SOURCE_DIR/Sources/Connlib
|
||||
cp -r $CONNLIB_SOURCE_DIR/Sources/Connlib $DEST
|
||||
set +x
|
||||
else
|
||||
echo "CONNLIB_SOURCE_DIR is not set. Is this being invoked from Xcode?"
|
||||
|
||||
Reference in New Issue
Block a user