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 +