diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2022-06-02 07:45:49 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2022-06-02 12:44:39 +0200 |
| commit | 29ebb186fd6562a17fa530f271776922ca27646d (patch) | |
| tree | 3a5b7b2404556f6c7a7d4e691ea2ea799412e574 | |
| parent | e6714d142bb5d08c49d1f19884ea9bfd7d25290f (diff) | |
| download | mullvadvpn-29ebb186fd6562a17fa530f271776922ca27646d.tar.xz mullvadvpn-29ebb186fd6562a17fa530f271776922ca27646d.zip | |
Xcode: add build config template
| -rw-r--r-- | .github/workflows/ios.yml | 8 | ||||
| -rw-r--r-- | ios/BuildInstructions.md | 24 | ||||
| -rw-r--r-- | ios/Configurations/.gitignore | 3 | ||||
| -rw-r--r-- | ios/Configurations/App.xcconfig.template | 6 | ||||
| -rw-r--r-- | ios/Configurations/Base.xcconfig.template | 12 | ||||
| -rw-r--r-- | ios/Configurations/PacketTunnel.xcconfig.template | 6 | ||||
| -rw-r--r-- | ios/Configurations/Screenshots.xcconfig.template | 9 | ||||
| -rw-r--r-- | ios/MullvadVPN.xcodeproj/project.pbxproj | 56 | ||||
| -rw-r--r-- | ios/MullvadVPN/ApplicationConfiguration.swift | 20 | ||||
| -rw-r--r-- | ios/MullvadVPN/Info.plist | 2 | ||||
| -rw-r--r-- | ios/MullvadVPN/MullvadVPN.entitlements | 2 | ||||
| -rw-r--r-- | ios/PacketTunnel/Info.plist | 2 | ||||
| -rw-r--r-- | ios/PacketTunnel/PacketTunnel.entitlements | 2 | ||||
| -rw-r--r-- | ios/README.md | 9 |
14 files changed, 113 insertions, 48 deletions
diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 4963e34311..122c9881b9 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -37,6 +37,14 @@ jobs: sudo mkdir -p /Library/Developer/CoreSimulator/Profiles/Runtimes sudo ln -s /Applications/Xcode_11.7.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS\ 13.7.simruntime + - name: Configure Xcode project + run: | + cp Base.xcconfig.template Base.xcconfig + cp App.xcconfig.template App.xcconfig + cp PacketTunnel.xcconfig.template PacketTunnel.xcconfig + cp Screenshots.xcconfig.template Screenshots.xcconfig + working-directory: ios/Configurations + - name: Build and test run: | xcodebuild test \ diff --git a/ios/BuildInstructions.md b/ios/BuildInstructions.md index e3b114153a..e21992a346 100644 --- a/ios/BuildInstructions.md +++ b/ios/BuildInstructions.md @@ -178,6 +178,30 @@ xcrun altool --store-password-in-keychain-item <KEYCHAIN_ITEM_NAME> \ [Apple ID website]: https://appleid.apple.com/account/manage +# Configure Xcode project + +Copy template files of Xcode build configuration: + +``` +cp ./ios/Configurations/Base.xcconfig.template ./ios/Configurations/Base.xcconfig +cp ./ios/Configurations/App.xcconfig.template ./ios/Configurations/App.xcconfig +cp ./ios/Configurations/PacketTunnel.xcconfig.template ./ios/Configurations/PacketTunnel.xcconfig +cp ./ios/Configurations/Screenshots.xcconfig.template ./ios/Configurations/Screenshots.xcconfig +``` + +Template files provide our team ID and correct provisioning profiles and generally do not require +any changes when configuring our build server or developer machines for members of Mullvad +development team. In all other cases perform the following steps to configure the project: + +1. Edit `Base.xcconfig` and fill in your Apple development team ID, which can be found on Apple +developer portal in the top right corner next to your organization name (uppercase letters and +digits). +1. Edit `App.xcconfig` and `PacketTunnel.xcconfig` and supply the names of your provisioning profiles +for development (Debug) and distribution (Release). +1. Edit `Screenshots.xcconfig` and supply the name of your provisioning profile. We only specify +development profile here as we never build UI testing targets for distribution. Skip this step if +you do not intend to generate screenshots for the app. + # Automated build and deployment Build script does not bump the build number, so make sure to do that manually and commit to repo: diff --git a/ios/Configurations/.gitignore b/ios/Configurations/.gitignore index 7431e305b0..974fcd39de 100644 --- a/ios/Configurations/.gitignore +++ b/ios/Configurations/.gitignore @@ -1 +1,4 @@ +Base.xcconfig +App.xcconfig +PacketTunnel.xcconfig Screenshots.xcconfig diff --git a/ios/Configurations/App.xcconfig.template b/ios/Configurations/App.xcconfig.template new file mode 100644 index 0000000000..5725f32dd0 --- /dev/null +++ b/ios/Configurations/App.xcconfig.template @@ -0,0 +1,6 @@ +#include "Base.xcconfig" + +// Provisioning profiles +// Comment out the lines below if using automatic code sign +PROVISIONING_PROFILE_SPECIFIER[config=Debug][sdk=*][arch=*] = Mullvad VPN Development +PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=*][arch=*] = Mullvad VPN Distribution diff --git a/ios/Configurations/Base.xcconfig.template b/ios/Configurations/Base.xcconfig.template new file mode 100644 index 0000000000..6861503a66 --- /dev/null +++ b/ios/Configurations/Base.xcconfig.template @@ -0,0 +1,12 @@ +// Development team +DEVELOPMENT_TEAM = CKG9MXH72F + +// Bundle ID +APPLICATION_IDENTIFIER = net.mullvad.MullvadVPN + +// Shared container security group ID +SECURITY_GROUP_IDENTIFIER = group.net.mullvad.MullvadVPN + +// Code signing style +// Possible values: Manual or Automatic +CODE_SIGN_STYLE = Manual diff --git a/ios/Configurations/PacketTunnel.xcconfig.template b/ios/Configurations/PacketTunnel.xcconfig.template new file mode 100644 index 0000000000..5783ab6d49 --- /dev/null +++ b/ios/Configurations/PacketTunnel.xcconfig.template @@ -0,0 +1,6 @@ +#include "Base.xcconfig" + +// Provisioning profiles +// Comment out the lines below if using automatic code sign +PROVISIONING_PROFILE_SPECIFIER[config=Debug][sdk=*][arch=*] = Packet Tunnel Development +PROVISIONING_PROFILE_SPECIFIER[config=Release][sdk=*][arch=*] = Packet Tunnel Distribution diff --git a/ios/Configurations/Screenshots.xcconfig.template b/ios/Configurations/Screenshots.xcconfig.template index 9e472844da..ff966b82c1 100644 --- a/ios/Configurations/Screenshots.xcconfig.template +++ b/ios/Configurations/Screenshots.xcconfig.template @@ -1 +1,8 @@ -MULLVAD_ACCOUNT_TOKEN=<ACCOUNT TOKEN> +#include "Base.xcconfig" + +// Provisioning profiles +// Comment out the lines below if using automatic code sign +PROVISIONING_PROFILE_SPECIFIER[config=Debug][sdk=*][arch=*] = Screenshots Development + +// Mullvad account number used when taking screenshots +MULLVAD_ACCOUNT_TOKEN = diff --git a/ios/MullvadVPN.xcodeproj/project.pbxproj b/ios/MullvadVPN.xcodeproj/project.pbxproj index 800ab1655b..fad611075f 100644 --- a/ios/MullvadVPN.xcodeproj/project.pbxproj +++ b/ios/MullvadVPN.xcodeproj/project.pbxproj @@ -329,6 +329,9 @@ 5801C9A427A14B2A0031566A /* TunnelManagerState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelManagerState.swift; sourceTree = "<group>"; }; 5807E2BF2432038B00F5FF30 /* String+Split.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Split.swift"; sourceTree = "<group>"; }; 5807E2C1243203D000F5FF30 /* StringTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringTests.swift; sourceTree = "<group>"; }; + 5808273928487E3E006B77A4 /* Base.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = "<group>"; }; + 5808273B284888BC006B77A4 /* App.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = App.xcconfig; sourceTree = "<group>"; }; + 5808273C284888E5006B77A4 /* PacketTunnel.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = PacketTunnel.xcconfig; sourceTree = "<group>"; }; 58095C4A2760B4F200890776 /* AddressCacheStoreError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressCacheStoreError.swift; sourceTree = "<group>"; }; 58095C4E2760BA9100890776 /* AddressCacheStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressCacheStore.swift; sourceTree = "<group>"; }; 58095C502760BBB400890776 /* AddressCacheTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressCacheTracker.swift; sourceTree = "<group>"; }; @@ -946,6 +949,9 @@ 58ECD29023F178FD004298B6 /* Configurations */ = { isa = PBXGroup; children = ( + 5808273928487E3E006B77A4 /* Base.xcconfig */, + 5808273B284888BC006B77A4 /* App.xcconfig */, + 5808273C284888E5006B77A4 /* PacketTunnel.xcconfig */, 58ECD29123F178FD004298B6 /* Screenshots.xcconfig */, ); path = Configurations; @@ -1498,9 +1504,8 @@ /* Begin XCBuildConfiguration section */ 58B0A2A6238EE67E00BC001D /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273928487E3E006B77A4 /* Base.xcconfig */; buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = CKG9MXH72F; INFOPLIST_FILE = MullvadVPNTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -1515,9 +1520,8 @@ }; 58B0A2A7238EE67E00BC001D /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273928487E3E006B77A4 /* Base.xcconfig */; buildSettings = { - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = MullvadVPNTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -1526,8 +1530,6 @@ ); PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPNTests; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_VERSION = 5.0; }; name = Release; @@ -1565,7 +1567,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1629,7 +1630,6 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Apple Distribution"; - CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; @@ -1656,14 +1656,13 @@ }; 58CE5E73224146210008646E /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273B284888BC006B77A4 /* App.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = MullvadVPN/MullvadVPN.entitlements; - CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = CKG9MXH72F; ENABLE_BITCODE = NO; INFOPLIST_FILE = MullvadVPN/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -1671,9 +1670,8 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 2022.2; - PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN; + PRODUCT_BUNDLE_IDENTIFIER = "$(APPLICATION_IDENTIFIER)"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Mullvad VPN Development"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; @@ -1682,14 +1680,13 @@ }; 58CE5E74224146210008646E /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273B284888BC006B77A4 /* App.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = MullvadVPN/MullvadVPN.entitlements; - CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = CKG9MXH72F; ENABLE_BITCODE = NO; INFOPLIST_FILE = MullvadVPN/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -1697,9 +1694,8 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 2022.2; - PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN; + PRODUCT_BUNDLE_IDENTIFIER = "$(APPLICATION_IDENTIFIER)"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Mullvad VPN Release"; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; @@ -1707,12 +1703,11 @@ }; 58CE5E83224146470008646E /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273C284888E5006B77A4 /* PacketTunnel.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = PacketTunnel/PacketTunnel.entitlements; - CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = CKG9MXH72F; ENABLE_BITCODE = NO; INFOPLIST_FILE = PacketTunnel/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -1721,9 +1716,8 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 2022.2; - PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN.PacketTunnel; + PRODUCT_BUNDLE_IDENTIFIER = "$(APPLICATION_IDENTIFIER).PacketTunnel"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Packet Tunnel Development"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; }; @@ -1731,12 +1725,11 @@ }; 58CE5E84224146470008646E /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273C284888E5006B77A4 /* PacketTunnel.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = PacketTunnel/PacketTunnel.entitlements; - CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 3; - DEVELOPMENT_TEAM = CKG9MXH72F; ENABLE_BITCODE = NO; INFOPLIST_FILE = PacketTunnel/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -1745,9 +1738,8 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = 2022.2; - PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPN.PacketTunnel; + PRODUCT_BUNDLE_IDENTIFIER = "$(APPLICATION_IDENTIFIER).PacketTunnel"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = "Packet Tunnel Release"; SWIFT_VERSION = 5.0; }; name = Release; @@ -1756,16 +1748,13 @@ isa = XCBuildConfiguration; baseConfigurationReference = 58ECD29123F178FD004298B6 /* Screenshots.xcconfig */; buildSettings = { - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = CKG9MXH72F; INFOPLIST_FILE = MullvadVPNScreenshots/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPNScreenshots; + PRODUCT_BUNDLE_IDENTIFIER = "$(APPLICATION_IDENTIFIER).Screenshots"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_TARGET_NAME = MullvadVPN; @@ -1776,19 +1765,14 @@ isa = XCBuildConfiguration; baseConfigurationReference = 58ECD29123F178FD004298B6 /* Screenshots.xcconfig */; buildSettings = { - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; - CODE_SIGN_STYLE = Manual; - DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = MullvadVPNScreenshots/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = net.mullvad.MullvadVPNScreenshots; + PRODUCT_BUNDLE_IDENTIFIER = "$(APPLICATION_IDENTIFIER).Screenshots"; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = ""; - "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = ""; SWIFT_VERSION = 5.0; TEST_TARGET_NAME = MullvadVPN; }; @@ -1796,8 +1780,8 @@ }; 58FBDA9822A519BC00EB69A3 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273928487E3E006B77A4 /* Base.xcconfig */; buildSettings = { - CODE_SIGN_STYLE = Automatic; DEBUGGING_SYMBOLS = YES; DEBUG_INFORMATION_FORMAT = dwarf; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; @@ -1810,8 +1794,8 @@ }; 58FBDA9922A519BC00EB69A3 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 5808273928487E3E006B77A4 /* Base.xcconfig */; buildSettings = { - CODE_SIGN_STYLE = Automatic; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; diff --git a/ios/MullvadVPN/ApplicationConfiguration.swift b/ios/MullvadVPN/ApplicationConfiguration.swift index 17bd6f04a1..6c6acbe05c 100644 --- a/ios/MullvadVPN/ApplicationConfiguration.swift +++ b/ios/MullvadVPN/ApplicationConfiguration.swift @@ -9,14 +9,20 @@ import Foundation import struct Network.IPv4Address -enum ApplicationConfiguration {} +class ApplicationConfiguration { + /// Shared container security group identifier. + static var securityGroupIdentifier: String { + let securityGroupIdentifier = Bundle(for: Self.self) + .object(forInfoDictionaryKey: "ApplicationSecurityGroupIdentifier") as? String + return securityGroupIdentifier! + } -extension ApplicationConfiguration { - /// The application group identifier used for sharing application preferences between processes - static let securityGroupIdentifier = "group.net.mullvad.MullvadVPN" + /// The application identifier for packet tunnel extension. + static var packetTunnelExtensionIdentifier: String { + let mainBundleIdentifier = Bundle.main.bundleIdentifier! - /// The application identifier for the PacketTunnel extension - static let packetTunnelExtensionIdentifier = "net.mullvad.MullvadVPN.PacketTunnel" + return "\(mainBundleIdentifier).PacketTunnel" + } /// Container URL for security group static var containerURL: URL? { @@ -64,4 +70,6 @@ extension ApplicationConfiguration { /// API address background task identifier static let addressCacheUpdateTaskIdentifier = "net.mullvad.MullvadVPN.AddressCacheUpdate" + + private init() {} } diff --git a/ios/MullvadVPN/Info.plist b/ios/MullvadVPN/Info.plist index d4f8f9020f..4c782bc735 100644 --- a/ios/MullvadVPN/Info.plist +++ b/ios/MullvadVPN/Info.plist @@ -2,6 +2,8 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>ApplicationSecurityGroupIdentifier</key> + <string>$(SECURITY_GROUP_IDENTIFIER)</string> <key>BGTaskSchedulerPermittedIdentifiers</key> <array> <string>net.mullvad.MullvadVPN.AppRefresh</string> diff --git a/ios/MullvadVPN/MullvadVPN.entitlements b/ios/MullvadVPN/MullvadVPN.entitlements index a34daec96d..4b3f467000 100644 --- a/ios/MullvadVPN/MullvadVPN.entitlements +++ b/ios/MullvadVPN/MullvadVPN.entitlements @@ -8,7 +8,7 @@ </array> <key>com.apple.security.application-groups</key> <array> - <string>group.net.mullvad.MullvadVPN</string> + <string>$(SECURITY_GROUP_IDENTIFIER)</string> </array> </dict> </plist> diff --git a/ios/PacketTunnel/Info.plist b/ios/PacketTunnel/Info.plist index 59c8676089..d7c46d333a 100644 --- a/ios/PacketTunnel/Info.plist +++ b/ios/PacketTunnel/Info.plist @@ -2,6 +2,8 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>ApplicationSecurityGroupIdentifier</key> + <string>$(SECURITY_GROUP_IDENTIFIER)</string> <key>CFBundleDevelopmentRegion</key> <string>$(DEVELOPMENT_LANGUAGE)</string> <key>CFBundleDisplayName</key> diff --git a/ios/PacketTunnel/PacketTunnel.entitlements b/ios/PacketTunnel/PacketTunnel.entitlements index a34daec96d..4b3f467000 100644 --- a/ios/PacketTunnel/PacketTunnel.entitlements +++ b/ios/PacketTunnel/PacketTunnel.entitlements @@ -8,7 +8,7 @@ </array> <key>com.apple.security.application-groups</key> <array> - <string>group.net.mullvad.MullvadVPN</string> + <string>$(SECURITY_GROUP_IDENTIFIER)</string> </array> </dict> </plist> diff --git a/ios/README.md b/ios/README.md index 160245eeee..a6ba7a35f9 100644 --- a/ios/README.md +++ b/ios/README.md @@ -5,9 +5,12 @@ This is the iOS version of the Mullvad VPN app. The app can be found on the Appl All releases have signed git tags on the format `ios/<version>`. For changes between each release, see the [changelog]. +For Xcode project configuration please refer to [Configure Xcode project] section of build +instructions document. + [App Store]: https://apps.apple.com/us/app/mullvad-vpn/id1488466513 [changelog]: CHANGELOG.md - +[Configure Xcode project]: BuildInstructions.md#configure-xcode-project ## Screenshots for AppStore @@ -16,7 +19,7 @@ a part of Fastlane tools. ### Configuration -The screenshot script uses the real account token to log in, which is provided via Xcode build +The screenshot script uses the real account number to log in, which is provided via Xcode build configuration. 1. Create the build configuration using a template file: @@ -25,7 +28,7 @@ configuration. cp ios/Configurations/Screenshots.xcconfig.template ios/Configurations/Screenshots.xcconfig ``` -1. Edit the configuration file and put your account token without quotes: +1. Edit the configuration file and put your account number without quotes: ``` vim ios/Configurations/Screenshots.xcconfig |
