diff --git a/.github/workflows/dev-i copy.yml b/.github/workflows/dev-i copy.yml deleted file mode 100644 index 80d55f02..00000000 --- a/.github/workflows/dev-i copy.yml +++ /dev/null @@ -1,206 +0,0 @@ -name: dev i new -on: - push: - branches: - - ios2 - paths-ignore: - - '**.md' - - 'docs/**' - - '.github/**' - - '!.github/workflows/*' - - 'appcast.xml' - -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - -env: - CHANNEL: ${{ github.ref_type == 'tag' && endsWith(github.ref_name, 'dev') && 'dev' || github.ref_type != 'tag' && 'dev' || 'prod' }} - NDK_VERSION: r26b - -jobs: - build: - permissions: write-all - strategy: - fail-fast: false - matrix: - include: - # - platform: android-apk - # os: ubuntu-latest - # targets: apk - - # - platform: android-aab - # os: ubuntu-latest - # targets: aab - - # - platform: windows - # os: windows-latest - # aarch: amd64 - # targets: exe - # filename: hiddify-windows-x64 - - # - platform: linux - # os: ubuntu-latest - # aarch: amd64 - # targets: AppImage - # filename: hiddify-linux-x64 - - # - platform: macos - # os: macos-13 - # aarch: universal - # targets: dmg - # filename: hiddify-macos-universal - - - platform: ios - os: macos-13 - aarch: universal - filename: hiddify-ios - targets: ipa - - runs-on: ${{ matrix.os }} - steps: - - name: checkout - uses: actions/checkout@v3 - - name: Install macos dmg needed tools - if: matrix.platform == 'macos' || matrix.platform == 'ios' - run: | - # xcode-select --install || softwareupdate --all --install --force - # brew uninstall --force $(brew list | grep python@) && brew cleanup || echo "python not installed" - brew uninstall --ignore-dependencies python@3.12 - brew reinstall python@3.10 - python3 -m pip install --upgrade setuptools pip - brew install create-dmg tree - npm install -g appdmg - brew install graphicsmagick imagemagick - gem install fastlane - bundle install - pip install setuptools - npm install --global create-dmg - - - name: Fastlane Release - shell: bash - run: fastlane release - env: - MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} - MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} - FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT: 120 # x86 is slooooooow - - - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: '15.0.1' - - name: Setup Flutter - uses: subosito/flutter-action@v2 - with: - flutter-version: '3.16.x' - channel: 'stable' - cache: true - - - - name: Setup Flutter Distributor - if: ${{ !startsWith(matrix.platform,'android') }} - run: | - dart pub global activate flutter_distributor - - - - name: Get Geo Assets - run: | - make get-geo-assets - - - name: Get Dependencies - run: | - make get - - - name: Generate - run: | - make translate - make gen - - - name: Get Libs ${{ matrix.platform }} - run: | - make ${{ matrix.platform }}-libs - - - - name: Setup Apple certificate and provisioning profile - if: startsWith(matrix.os,'macos') - env: - BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.APPLE_BUILD_PROVISION_PROFILE_BASE64 }} - BUILD_PACKET_TUNNEL_PROVISION_PROFILE_BASE64: ${{ secrets.APPLE_BUILD_PACKET_TUNNEL_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 - PP_PACKET_TUNNEL_PATH=$RUNNER_TEMP/build_pppt.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 - echo -n "$BUILD_PACKET_TUNNEL_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PACKET_TUNNEL_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 - cp $PP_PACKET_TUNNEL_PATH ~/Library/MobileDevice/Provisioning\ Profiles - - - name: Release ${{ matrix.platform }} - env: - SENTRY_DSN: ${{ secrets.SENTRY_DSN }} - run: | - make ${{ matrix.platform }}-release - - - name: Upload Debug Symbols - if: ${{ github.ref_type == 'tag' }} - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} - SENTRY_DIST: ${{ matrix.platform == 'android-aab' && 'google-play' || 'general' }} - run: | - flutter packages pub run sentry_dart_plugin - - - - name: Copy to out unix - if: matrix.platform == 'linux' || matrix.platform == 'macos' || matrix.platform == 'ios' - run: | - ls -R dist/ - mkdir out - mkdir tmp_out - EXT="${{ matrix.targets }}" - mv dist/*/*.$EXT tmp_out/${{matrix.filename}}.$EXT - chmod +x tmp_out/${{matrix.filename}}.$EXT - if [ "${{matrix.platform}}" == "linux" ];then - cp ./.github/help/linux/* tmp_out/ - else - cp ./.github/help/mac-windows/* tmp_out/ - fi - if [[ "${{matrix.platform}}" == 'ios' ]];then - mv tmp_out/${{matrix.filename}}.ipa bin/${{matrix.filename}}.ipa - else - cd tmp_out - 7z a ${{matrix.filename}}.zip ./ - mv *.zip ../out/ - fi - - - name: Clean up keychain and provisioning profile - if: ${{ always() && startsWith(matrix.os,'macos')}} - run: | - security delete-keychain $RUNNER_TEMP/app-signing.keychain-db - rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: artifact - path: ./out - retention-days: 2 diff --git a/.github/workflows/dev-i.yml b/.github/workflows/dev-i.yml deleted file mode 100644 index 0edb69dd..00000000 --- a/.github/workflows/dev-i.yml +++ /dev/null @@ -1,192 +0,0 @@ -name: dev i -on: - push: - branches: - - ios2 - paths-ignore: - - '**.md' - - 'docs/**' - - '.github/**' - - '!.github/workflows/*' - - 'appcast.xml' - -concurrency: - group: ${{ github.ref }}-${{ github.workflow }} - cancel-in-progress: true - -env: - CHANNEL: ${{ github.ref_type == 'tag' && endsWith(github.ref_name, 'dev') && 'dev' || github.ref_type != 'tag' && 'dev' || 'prod' }} - NDK_VERSION: r26b - -jobs: - build: - permissions: write-all - strategy: - fail-fast: false - matrix: - include: - # - platform: android-apk - # os: ubuntu-latest - # targets: apk - - # - platform: android-aab - # os: ubuntu-latest - # targets: aab - - # - platform: windows - # os: windows-latest - # aarch: amd64 - # targets: exe - # filename: hiddify-windows-x64 - - # - platform: linux - # os: ubuntu-latest - # aarch: amd64 - # targets: AppImage - # filename: hiddify-linux-x64 - - # - platform: macos - # os: macos-13 - # aarch: universal - # targets: dmg - # filename: hiddify-macos-universal - - - platform: ios - os: macos-13 - aarch: universal - filename: hiddify-ios - targets: ipa - - runs-on: ${{ matrix.os }} - steps: - - name: checkout - uses: actions/checkout@v3 - - name: Install macos dmg needed tools - if: matrix.platform == 'macos' || matrix.platform == 'ios' - run: | - # xcode-select --install || softwareupdate --all --install --force - # brew uninstall --force $(brew list | grep python@) && brew cleanup || echo "python not installed" - brew uninstall --ignore-dependencies python@3.12 - brew reinstall python@3.10 - python3 -m pip install --upgrade setuptools pip - brew install create-dmg tree - npm install -g appdmg - - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: '15.0.1' - - name: Setup Flutter - uses: subosito/flutter-action@v2 - with: - flutter-version: '3.16.x' - channel: 'stable' - cache: true - - - - name: Setup Flutter Distributor - if: ${{ !startsWith(matrix.platform,'android') }} - run: | - dart pub global activate flutter_distributor - - - - name: Get Geo Assets - run: | - make get-geo-assets - - - name: Get Dependencies - run: | - make get - - - name: Generate - run: | - make translate - make gen - - - name: Get Libs ${{ matrix.platform }} - run: | - make ${{ matrix.platform }}-libs - - - - name: Setup Apple certificate and provisioning profile - if: startsWith(matrix.os,'macos') - env: - BUILD_CERTIFICATE_BASE64: ${{ secrets.APPLE_BUILD_CERTIFICATE_BASE64 }} - P12_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_P12_PASSWORD }} - BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.APPLE_BUILD_PROVISION_PROFILE_BASE64 }} - BUILD_PACKET_TUNNEL_PROVISION_PROFILE_BASE64: ${{ secrets.APPLE_BUILD_PACKET_TUNNEL_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 - PP_PACKET_TUNNEL_PATH=$RUNNER_TEMP/build_pppt.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 - echo -n "$BUILD_PACKET_TUNNEL_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PACKET_TUNNEL_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 - cp $PP_PACKET_TUNNEL_PATH ~/Library/MobileDevice/Provisioning\ Profiles - - - name: Release ${{ matrix.platform }} - env: - SENTRY_DSN: ${{ secrets.SENTRY_DSN }} - run: | - make ${{ matrix.platform }}-release - - - name: Upload Debug Symbols - if: ${{ github.ref_type == 'tag' }} - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG }} - SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} - SENTRY_DIST: ${{ matrix.platform == 'android-aab' && 'google-play' || 'general' }} - run: | - flutter packages pub run sentry_dart_plugin - - - - name: Copy to out unix - if: matrix.platform == 'linux' || matrix.platform == 'macos' || matrix.platform == 'ios' - run: | - ls -R dist/ - mkdir out - mkdir tmp_out - EXT="${{ matrix.targets }}" - mv dist/*/*.$EXT tmp_out/${{matrix.filename}}.$EXT - chmod +x tmp_out/${{matrix.filename}}.$EXT - if [ "${{matrix.platform}}" == "linux" ];then - cp ./.github/help/linux/* tmp_out/ - else - cp ./.github/help/mac-windows/* tmp_out/ - fi - if [[ "${{matrix.platform}}" == 'ios' ]];then - mv tmp_out/${{matrix.filename}}.ipa bin/${{matrix.filename}}.ipa - else - cd tmp_out - 7z a ${{matrix.filename}}.zip ./ - mv *.zip ../out/ - fi - - - name: Clean up keychain and provisioning profile - if: ${{ always() && startsWith(matrix.os,'macos')}} - run: | - security delete-keychain $RUNNER_TEMP/app-signing.keychain-db - rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision - - name: Upload Artifact - uses: actions/upload-artifact@v3 - with: - name: artifact - path: ./out - retention-days: 2 diff --git a/Makefile b/Makefile index 81393676..ccef937c 100644 --- a/Makefile +++ b/Makefile @@ -78,23 +78,21 @@ macos-install-dependencies: dart pub global activate flutter_distributor ios-install-dependencies: - if [ "$(flutter)" = "true" ]; then - curl -l -o ~/Downloads/flutter_macos_3.19.3-stable.zip https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_3.19.3-stable.zip; - mkdir -p ~/develop; - cd ~/develop; - unzip ~/Downloads/flutter_macos_3.19.3-stable.zip; - export PATH="$$PATH:$$HOME/develop/flutter/bin"; - echo 'export PATH="$$PATH:$$HOME/develop/flutter/bin"' >> ~/.zshrc; - - export PATH="$PATH:$HOME/develop/flutter/bin"; - echo 'export PATH="$PATH:$HOME/develop/flutter/bin"' >> ~/.zshrc; - - curl -sSL https://rvm.io/mpapis.asc | gpg --import - - curl -sSL https://rvm.io/pkuczynski.asc | gpg --import - - curl -sSL https://get.rvm.io | bash -s stable - brew install openssl@1.1 - PKG_CONFIG_PATH=$(brew --prefix openssl@1.1)/lib/pkgconfig rvm install 2.7.5 - sudo gem install cocoapods -V + if [ "$(flutter)" = "true" ]; then \ + curl -L -o ~/Downloads/flutter_macos_3.19.3-stable.zip https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_3.19.3-stable.zip; \ + mkdir -p ~/develop; \ + cd ~/develop; \ + unzip ~/Downloads/flutter_macos_3.19.3-stable.zip; \ + export PATH="$$PATH:$$HOME/develop/flutter/bin"; \ + echo 'export PATH="$$PATH:$$HOME/develop/flutter/bin"' >> ~/.zshrc; \ + export PATH="$PATH:$HOME/develop/flutter/bin"; \ + echo 'export PATH="$PATH:$HOME/develop/flutter/bin"' >> ~/.zshrc; \ + curl -sSL https://rvm.io/mpapis.asc | gpg --import -; \ + curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -; \ + curl -sSL https://get.rvm.io | bash -s stable; \ + brew install openssl@1.1; \ + PKG_CONFIG_PATH=$(brew --prefix openssl@1.1)/lib/pkgconfig rvm install 2.7.5; \ + sudo gem install cocoapods -V; \ fi brew install create-dmg tree npm install -g appdmg diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 6aa0009f..9efcd6b5 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -751,7 +751,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1708; + CURRENT_PROJECT_VERSION = 1709; ENABLE_USER_SCRIPT_SANDBOXING = YES; EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -770,7 +770,7 @@ "@executable_path/libcore/", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 0.17.8; + MARKETING_VERSION = 0.17.9; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_LDFLAGS = "-lresolv"; @@ -802,7 +802,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1708; + CURRENT_PROJECT_VERSION = 1709; ENABLE_USER_SCRIPT_SANDBOXING = YES; EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -821,7 +821,7 @@ "@executable_path/libcore/", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 0.17.8; + MARKETING_VERSION = 0.17.9; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = NO; OTHER_LDFLAGS = "-lresolv"; @@ -851,7 +851,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1708; + CURRENT_PROJECT_VERSION = 1709; ENABLE_USER_SCRIPT_SANDBOXING = YES; EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -870,7 +870,7 @@ "@executable_path/libcore/", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 0.17.8; + MARKETING_VERSION = 0.17.9; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = NO; OTHER_LDFLAGS = "-lresolv"; diff --git a/pubspec.yaml b/pubspec.yaml index 07f93c60..585e0829 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: hiddify description: Cross Platform Multi Protocol Proxy Frontend. publish_to: "none" -version: 0.17.8+1708 +version: 0.17.9+1709 environment: sdk: ">=3.3.0 <4.0.0" diff --git a/windows/packaging/msix/make_config.yaml b/windows/packaging/msix/make_config.yaml index cb994e07..04cd32a1 100644 --- a/windows/packaging/msix/make_config.yaml +++ b/windows/packaging/msix/make_config.yaml @@ -1,7 +1,7 @@ display_name: Hiddify publisher_display_name: Hiddify identity_name: Hiddify.HiddifyNext -msix_version: 0.17.8.0 +msix_version: 0.17.9.0 logo_path: windows\runner\resources\app_icon.ico capabilities: internetClient, internetClientServer, privateNetworkClientServer languages: en-us, zh-cn, zh-tw, tr-tr,fa-ir,ru-ru,pt-br,es-es