diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index cb7d950b..a4d51219 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -128,7 +128,7 @@ jobs:
run: |
make ${{ matrix.platform }}-libs
- - name: Setup Signing Properties
+ - name: Setup Android Signing Properties
if: startsWith(matrix.platform,'android')
run: |
echo "${{ secrets.ANDROID_SIGNING_KEY }}" | base64 --decode > android/key.jks
@@ -136,6 +136,34 @@ jobs:
echo "storePassword=${{ secrets.ANDROID_SIGNING_STORE_PASSWORD }}" >> android/key.properties
echo "keyPassword=${{ secrets.ANDROID_SIGNING_KEY_PASSWORD }}" >> android/key.properties
echo "keyAlias=${{ secrets.ANDROID_SIGNING_KEY_ALIAS }}" >> android/key.properties
+ - name: Setup Apple certificate and provisioning profile
+ env:
+ BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
+ P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
+ BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }}
+ KEYCHAIN_PASSWORD: ${{ secrets.APPLE_KEYCHAIN_PASSWORD }}
+ run: |
+ # create variables
+ CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
+ PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision
+ KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
+
+ # import certificate and provisioning profile from secrets
+ echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
+ echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH
+
+ # create temporary keychain
+ security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
+ security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
+ security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
+
+ # import certificate to keychain
+ security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
+ security list-keychain -d user -s $KEYCHAIN_PATH
+
+ # apply provisioning profile
+ mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
+ cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles
- name: Release ${{ matrix.platform }}
env:
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index b1ec30a5..0b2220cd 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -384,13 +384,22 @@
TargetAttributes = {
03E392B52ADDA00E000ADF15 = {
CreatedOnToolsVersion = 15.0;
+ DevelopmentTeam = 3JFTY5BP58;
+ DevelopmentTeamName = "Mark Pashmfouroush";
+ ProvisioningStyle = Automatic;
};
331C8080294A63A400263BE5 = {
+ DevelopmentTeam = 3JFTY5BP58;
+ DevelopmentTeamName = "Mark Pashmfouroush";
+ ProvisioningStyle = Automatic;
CreatedOnToolsVersion = 14.0;
TestTargetID = 97C146ED1CF9000F007C117D;
};
97C146ED1CF9000F007C117D = {
CreatedOnToolsVersion = 7.3.1;
+ DevelopmentTeam = 3JFTY5BP58;
+ DevelopmentTeamName = "Mark Pashmfouroush";
+ ProvisioningStyle = Automatic;
LastSwiftMigration = 1100;
};
};
diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist
index f37d1036..719cfd28 100644
--- a/ios/Runner/Info.plist
+++ b/ios/Runner/Info.plist
@@ -51,5 +51,10 @@
UIStatusBarHidden
+ EXAppExtensionAttributes
+
+ EXExtensionPointIdentifier
+ com.apple.appintents-extension
+
diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements
index 6909073e..752f7ffb 100644
--- a/ios/Runner/Runner.entitlements
+++ b/ios/Runner/Runner.entitlements
@@ -2,13 +2,23 @@
+
+
com.apple.developer.networking.networkextension
+ app-proxy-provider
+ dns-proxy
packet-tunnel-provider
+ com.apple.security.app-sandbox
+
com.apple.security.application-groups
group.$(BASE_BUNDLE_IDENTIFIER)
+ com.apple.security.network.client
+
+ com.apple.security.network.server
+
diff --git a/ios/SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements b/ios/SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements
index 6909073e..969639f6 100644
--- a/ios/SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements
+++ b/ios/SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements
@@ -4,11 +4,19 @@
com.apple.developer.networking.networkextension
+ app-proxy-provider
+ dns-proxy
packet-tunnel-provider
+ com.apple.security.app-sandbox
+
com.apple.security.application-groups
group.$(BASE_BUNDLE_IDENTIFIER)
+ com.apple.security.network.client
+
+ com.apple.security.network.server
+