mirror of
https://github.com/kkebo/DNSecure.git
synced 2026-03-11 08:54:36 +00:00
commit
9a4a33f1f5
14 changed files with 193 additions and 31 deletions
|
|
@ -524,7 +524,7 @@
|
|||
MARKETING_VERSION = 1.1.1;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = xyz.kebo.DNSecure;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MACCATALYST = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
|
|
@ -550,7 +550,7 @@
|
|||
MARKETING_VERSION = 1.1.1;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = xyz.kebo.DNSecure;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MACCATALYST = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
|
|
|
|||
21
DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/Contents.json
vendored
Normal file
21
DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "IMG_0244.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/IMG_0244.jpg
vendored
Normal file
BIN
DNSecure/Assets.xcassets/HowToActivate/MakeServiceActive.imageset/IMG_0244.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
21
DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json
vendored
Normal file
21
DNSecure/Assets.xcassets/HowToActivate/NetworkSettings.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Screen Shot 2021-02-13 at 11.25.16 AM.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 155 KiB |
21
DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Contents.json
vendored
Normal file
21
DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Image 2-13-21 at 12.10 PM.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Image 2-13-21 at 12.10 PM.jpg
vendored
Normal file
BIN
DNSecure/Assets.xcassets/HowToActivate/NetworkSettingsApply.imageset/Image 2-13-21 at 12.10 PM.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
21
DNSecure/Assets.xcassets/HowToActivate/SystemPreferences.imageset/Contents.json
vendored
Normal file
21
DNSecure/Assets.xcassets/HowToActivate/SystemPreferences.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "Screen Shot 2021-02-13 at 11.36.47 AM.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 198 KiB |
21
DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/Contents.json
vendored
Normal file
21
DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/Contents.json
vendored
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "IMG_0250.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
BIN
DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/IMG_0250.jpg
vendored
Normal file
BIN
DNSecure/Assets.xcassets/HowToActivate/SystemPreferencesIcon.imageset/IMG_0250.jpg
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 73 KiB |
|
|
@ -194,6 +194,10 @@ extension ContentView: View {
|
|||
.frame(width: 10, height: 10)
|
||||
.foregroundColor(self.isEnabled ? .green : .secondary)
|
||||
Text(self.isEnabled ? "Active" : "Inactive")
|
||||
#if targetEnvironment(macCatalyst)
|
||||
Text("-")
|
||||
Button("Refresh", action: self.updateStatus)
|
||||
#endif
|
||||
}
|
||||
if !self.isEnabled {
|
||||
Button("How to Activate") {
|
||||
|
|
@ -220,6 +224,7 @@ extension ContentView: View {
|
|||
.navigationBarHidden(true)
|
||||
}
|
||||
}
|
||||
.onAppear(perform: self.updateStatus)
|
||||
.onChange(of: self.scenePhase) { phase in
|
||||
if phase == .active {
|
||||
self.updateStatus()
|
||||
|
|
|
|||
|
|
@ -36,35 +36,77 @@ extension HowToActivateView: View {
|
|||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("3. Open the Settings")
|
||||
Image("Settings")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("4. Go to \"General\" > \"VPN & Network\" > \"DNS\"")
|
||||
ScrollView(.horizontal) {
|
||||
#if targetEnvironment(macCatalyst)
|
||||
VStack(alignment: .leading) {
|
||||
Text("3. Open the System Preferences")
|
||||
Image("SystemPreferencesIcon")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("4. Go to Network settings")
|
||||
Image("SystemPreferences")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 400)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
HStack {
|
||||
Image("GeneralVPNNetwork")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
Image("DNS")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
Text("5. Select \"\(Bundle.main.displayName!)\" and click")
|
||||
Image(systemName: "ellipsis.circle")
|
||||
Text("button")
|
||||
}
|
||||
Image("NetworkSettings")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 400)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("6. Click \"Make Service Active\"")
|
||||
Image("MakeServiceActive")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("7. Click \"Apply\" button")
|
||||
Image("NetworkSettingsApply")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 400)
|
||||
}
|
||||
#else
|
||||
VStack(alignment: .leading) {
|
||||
Text("3. Open the Settings")
|
||||
Image("Settings")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("4. Go to \"General\" > \"VPN & Network\" > \"DNS\"")
|
||||
ScrollView(.horizontal) {
|
||||
HStack {
|
||||
Image("GeneralVPNNetwork")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
Image("DNS")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("5. \"Automatic\" is selected by default, so select \"\(Bundle.main.displayName!)\"")
|
||||
Image("DNSProvider")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
VStack(alignment: .leading) {
|
||||
Text("5. \"Automatic\" is selected by default, so select \"\(Bundle.main.displayName!)\"")
|
||||
Image("DNSProvider")
|
||||
.resizable()
|
||||
.scaledToFit()
|
||||
.frame(maxHeight: 200)
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
if self.isSheet {
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -3,11 +3,11 @@
|
|||
<a href="https://apps.apple.com/us/app/dnsecure/id1533413232?itsct=apps_box&itscg=30200" style="display: inline-block; overflow: hidden; border-top-left-radius: 13px; border-top-right-radius: 13px; border-bottom-right-radius: 13px; border-bottom-left-radius: 13px; width: 250px; height: 83px;"><img src="https://tools.applemediaservices.com/api/badges/download-on-the-app-store/black/en-US?size=250x83&releaseDate=1601251200&h=77f35e8e1cad98287ffaa894b10bb6e2" alt="Download on the App Store" style="border-top-left-radius: 13px; border-top-right-radius: 13px; border-bottom-right-radius: 13px; border-bottom-left-radius: 13px; width: 250px; height: 83px;"></a>
|
||||
or [TestFlight Beta](https://testflight.apple.com/join/A8GwCnq8)
|
||||
|
||||
iOS/iPadOS has supported encrypted DNS (e.g. DNS-over-TLS (DoT) and DNS-over-HTTPS (DoH)) since 14.0, but the Settings app doesn't have settings for using it. To solve that, DNSecure was created. DNSecure is a configuration tool of DoT and DoH.
|
||||
iOS 14+, iPadOS 14+, and macOS 11+ have supported encrypted DNS (e.g. DNS-over-TLS (DoT) and DNS-over-HTTPS (DoH)), but they don't have a native UI for enabling it. To solve that, DNSecure was created. DNSecure is a configuration tool of DoT and DoH.
|
||||
|
||||
This app uses the new [DNS Settings API](https://developer.apple.com/documentation/networkextension/dns_settings), so it requires iOS 14, iPadOS 14, or later.
|
||||
This app uses the new [DNS Settings API](https://developer.apple.com/documentation/networkextension/dns_settings), so it requires iOS 14+, iPadOS 14+, or macOS 11+.
|
||||
|
||||
## How to use
|
||||
## How to use (iOS/iPadOS)
|
||||
|
||||
1. Select a DNS server you like, or add another one
|
||||
1. Enable "Use This Server"
|
||||
|
|
@ -15,6 +15,16 @@ This app uses the new [DNS Settings API](https://developer.apple.com/documentati
|
|||
1. Go to "General" > "VPN & Network" > "DNS"
|
||||
1. "Automatic" is selected by default, so select "DNSecure"
|
||||
|
||||
## How to use (macOS)
|
||||
|
||||
1. Select a DNS server you like, or add another one
|
||||
1. Enable "Use This Server"
|
||||
1. Open the System Preferences
|
||||
1. Go to Network settings
|
||||
1. Select "DNSecure" and click "..." button on the bottom
|
||||
1. Click "Make Service Active"
|
||||
1. Click "Apply" button
|
||||
|
||||
## References
|
||||
|
||||
- https://developer.apple.com/documentation/networkextension/dns_settings
|
||||
|
|
|
|||
Loading…
Reference in a new issue