Merge pull request #37 from kkk669/mac-catalyst

Mac Catalyst
This commit is contained in:
Kenta Kubo 2021-02-13 12:26:51 +09:00 committed by GitHub
commit 9a4a33f1f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 193 additions and 31 deletions

View file

@ -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";
};

View 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
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View 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

View 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
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View 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

View 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
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View file

@ -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()

View file

@ -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 {

View file

@ -3,11 +3,11 @@
<a href="https://apps.apple.com/us/app/dnsecure/id1533413232?itsct=apps_box&amp;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&amp;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