Created
February 13, 2024 19:10
-
-
Save tonis2/ebb50ad6751fbd3b6e10647a7e9c5cc2 to your computer and use it in GitHub Desktop.
Code sign a flutter app from command line
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export CODESIGN_PASSWORD = "test" | |
export KEYCHAIN_PATH = "build.keychain" | |
export CERTIFICATE_ID = "id from find-identity" | |
export PROFILE_ID = "profile from name from apple dashboard" | |
export CERITIFICATE_FILE = "Certificates.p12" | |
### At start load the certificate file to keychain | |
### Copy .mobileprovision to profiles | |
### Build flutter ipa without codesign | |
### codesign manually | |
### Build archive | |
### Upload to testflight | |
security create-keychain -p ${CODESIGN_PASSWORD} ${KEYCHAIN_PATH} | |
security set-keychain-settings -lut 21600 ${KEYCHAIN_PATH} | |
security default-keychain -s ${KEYCHAIN_PATH} | |
security unlock-keychain -p ${CODESIGN_PASSWORD} | |
security import ${CERITIFICATE_FILE} -t agg -k ${KEYCHAIN_PATH} -P ${CODESIGN_PASSWORD} -A | |
security find-identity -p codesigning | |
mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles | |
cp ${PROFILE_ID}.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles | |
flutter build ipa --release --dart-define=flavor=prod --no-codesign --export-options-plist=./ios/export.plist | |
security unlock-keychain -p ${CODESIGN_PASSWORD} ${KEYCHAIN_PATH} | |
security set-key-partition-list -S "apple-tool:,apple:, codesign" -s -k ${CODESIGN_PASSWORD} ${KEYCHAIN_PATH} | |
codesign --deep --force --options runtime -vvv --sign "${CERTIFICATE_ID}" ./build/ios/archive/Runner.xcarchive | |
xcodebuild -exportArchive -archivePath ./build/ios/archive/Runner.xcarchive -exportPath . -exportOptionsPlist ./ios/export.plist | |
xcrun altool --upload-app --type ios -f ./build.ipa --username "${APPLE_UPLOAD_USERNAME}" --password "${APPLE_UPLOAD_PASSWORD}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
export.plist example