diff --git a/.github/workflows/build_archive_app_store.yml b/.github/workflows/build_archive_app_store.yml new file mode 100644 index 0000000..cf542a0 --- /dev/null +++ b/.github/workflows/build_archive_app_store.yml @@ -0,0 +1,87 @@ +name: Build IPA + +on: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + build-ipa: + runs-on: macos-12 + steps: + - uses: actions/checkout@v4 + + - name: Setup Java + uses: actions/setup-java@v2 + with: + distribution: 'zulu' + java-version: '11' + + # Install the Apple certificate and provisioning profile + - name: Install the Apple certificate and provisioning profile + env: + BUILD_CERTIFICATE_BASE64: ${{ secrets.APPSTORE_CERT_BASE64 }} + P12_PASSWORD: ${{ secrets.APPSTORE_CERT_PASSWORD }} + BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.MOBILEPROVISION_BASE64 }} + KEYCHAIN_PASSWORD: ${{ secrets.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: Setup Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.22.2' + # architecture: x64 + + - name: Upgrade CocoaPods + run: sudo gem install cocoapods + + - name: Fix pod install + run: sudo arch -x86_64 gem install ffi + + - name: Set up Python 3.10 + uses: actions/setup-python@v2 + with: + python-version: "3.10" + + - name: Setup XCode profiles + run: | + python -m pip install codemagic-cli-tools + which xcode-project + xcode-project use-profiles --archive-method=ad-hoc + cat /Users/runner/export_options.plist + + - name: Build IPA + run: flutter pub get && flutter build ipa --release --export-options-plist /Users/runner/export_options.plist + + - name: Upload IPA + uses: actions/upload-artifact@v2 + with: + name: IronFlow + path: ./IronFlow.ipa + if-no-files-found: error + + - name: Clean up keychain and provisioning profile + if: ${{ always() }} + run: | + security delete-keychain $RUNNER_TEMP/app-signing.keychain-db + rm ~/Library/MobileDevice/Provisioning\ Profiles/build_pp.mobileprovision diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 36903df..ced2c63 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -479,7 +479,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -500,7 +500,7 @@ EXPANDED_CODE_SIGN_IDENTITY = ""; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -521,7 +521,7 @@ EXPANDED_CODE_SIGN_IDENTITY = ""; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -540,7 +540,7 @@ EXPANDED_CODE_SIGN_IDENTITY = ""; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; @@ -674,7 +674,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -700,7 +700,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index a37439a..a49654a 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -482,7 +482,7 @@ EXPANDED_CODE_SIGN_IDENTITY = ""; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/IronFlow.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/IronFlow"; @@ -500,7 +500,7 @@ EXPANDED_CODE_SIGN_IDENTITY = ""; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/IronFlow.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/IronFlow"; @@ -518,7 +518,7 @@ EXPANDED_CODE_SIGN_IDENTITY = ""; GENERATE_INFOPLIST_FILE = YES; MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow.RunnerTests; + PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/IronFlow.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/IronFlow"; diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig index fc7de85..a0d37bc 100644 --- a/macos/Runner/Configs/AppInfo.xcconfig +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -8,7 +8,7 @@ PRODUCT_NAME = IronFlow // The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = com.example.IronFlow +PRODUCT_BUNDLE_IDENTIFIER = com.andreped.IronFlow // The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. +PRODUCT_COPYRIGHT = Copyright © 2024 com.andreped. All rights reserved.