Skip to content

Our IOS Build Solution

Heyramb Narayan Goyal edited this page Oct 3, 2022 · 1 revision

export_option.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>method</key>
	<string>app-store</string>
	<key>provisioningProfiles</key>
	<dict>
		<key>co.organization.app</key>
		<string>Organization iOS Distribution</string>
	</dict>
</dict>
</plist>

1 - add Flutter install

2 - pod repo update

After that these steps follow

To generate IOS

steps:
- task: Hey24sheep.flutter.flutter-build.FlutterBuild@0
  displayName: 'Flutter Build ios'
  inputs:
    target: ios
    projectDirectory: project
    buildFlavour: your_flavor
    buildNumber: '$(Build.BuildNumber)'
    buildName: '$(buildTimeStamp)'
    entryPoint: 'lib/main_flavor.dart'
    iosCodesign: false
    extraArgs: '--no-tree-shake-icons'

To install Apple Cert

steps:
- task: InstallAppleCertificate@2
  displayName: 'Install an Apple certificate'
  inputs:
    certSecureFile: 'xyz_distribution.p12'
    certPwd: xyz
    setUpPartitionIdACLForPrivateKey: false

To install Apple Provisioning Profile

steps:
- task: InstallAppleProvisioningProfile@1
  displayName: 'Install an Apple provisioning profile'
  inputs:
    provProfileSecureFile: 'your_Distribution.mobileprovision'

To bump bundle version

/usr/libexec/Plistbuddy -c "Set CFBundleVersion $BUILD_BUILDNUMBER" Info.plist

To generate Archive

xcodebuild -workspace ios/Runner.xcworkspace -scheme Runner archive -sdk iphoneos -configuration Release-development -archivePath Runner CODE_SIGN_STYLE=Manual CODE_SIGN_IDENTITY="iPhone Distribution: XYZ(ABC)" PROVISIONING_PROFILE= XYZ-GUID-HERE
PROVISIONING_PROFILE_SPECIFIER="SPECIFIER HERE"

To generate IPA

xcodebuild -exportArchive -archivePath Runner.xcarchive -exportPath Runner -exportOptionsPlist ios/export_options.plist

(if any) The only issues related to Provisioning Profiles got solved by deleting and recreating profiles and then re-linking them in XCode and uploading the same new profiles to Azure Devops.

Clone this wiki locally