플러터 앱 - 자동배포 iOS 쪽도 해보자 (feat. xcrun altool)
				알아둘일
				2024. 7. 2. 14:47
				
				
			플러터 앱 - 안드로이드 쪽 자동배포를 해봤는데, 이번에는 iOS 쪽도 해본다.
testFlight 로 업로드 하는 코드.
# IPA 파일 생성
flutter build ipa --release --export-options-plist=ios/exportOptions.plist
# TestFlight에 업로드 
xcrun altool --upload-app --type ios \
 --file build/ios/ipa/*.ipa \
 --username "{your-apple-develper-id}" \
 --password "{your-app-password}" \
 --primary-bundle-id "{your-app-bundle-id}"코드 자체는 심플하다. 관련 인증 부분이 좀 어려울 수 있다.
일단 앱 암호는 https://appleid.apple.com/account/manage 애플 계정쪽에서 설정한다.

그외 다른 인증 방식으로 몇가지 시도해봤는데, 유일하게 위 방법만 동작하였다.
( --apiKey --apiIssuer 방법 , --upload-package 방법 , xcrun notarytool 방법 => 모두 실패 )
위 다른 방식들이 좀더 안전(?)한 방법인 듯 해서 시도해봤었는데, 실패.
다음 부분에서도 좀 헤맸다.
# cat ios/exportOptions.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>destination</key>
    <string>export</string>
    <key>method</key>
    <string>app-store</string>
    <key>teamID</key>
    <string>{your-developer-team-ID}</string>
    <key>teamName</key>
    <string>{your-developer-team-Name}</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>{your-app-bundle-id}</key>
        <string>{your-project-provisioning-profile}</string>
    </dict>
    <key>signingCertificate</key>
    <string>Apple Distribution</string>
    <key>signingStyle</key>
    <string>manual</string>
    <key>stripSwiftSymbols</key>
    <true/>
    <key>uploadBitcode</key>
    <false/>
    <key>uploadSymbols</key>
    <true/>
</dict>
</plist>위 입력사항 중 2개 teamName / bundle id 는 금방 찾았고 , 그외 2가지 항목을 찾아야 한다.
teamID / provisioning profile 은 어디?
open ios/Runner.xcworkspace 
# 플러터 프로젝트를 Xcode 를 열어본다.Runner 쪽을 보면 Signing 부분에 있다. ( 지금 살펴보니, 모든 항목이 다 여기에 있다. )

내 경우는 계정소유자가 아니라 (앱 관리자? )권한으로 참여하는 것이라 Signing Certificate 쪽 설정하는데 고생을 좀 했다.
위 설정까지 문제없이 했다면, 맨 위 코드로 빌드 => 배포 가 정상적으로 될 것이다.
반응형
    
    
    
  '알아둘일' 카테고리의 다른 글
| 리액트 네이티브 (react-native) 설정 - 플러터개발환경에 추가할 부분 (0) | 2024.07.15 | 
|---|---|
| 안드로이드 앱 출시는 힘겹구나! (feat. 비공개테스트) (0) | 2024.07.14 | 
| 플러터 앱을 만들었으니, 배포 / 출시 를 자동화 해보자. (feat. androidpublisher) (0) | 2024.07.01 | 
| 플러터 - 앱로빈 광고 연동시 iOS native 광고 노출 이상 현상 (feat. bundle id) (0) | 2024.06.11 | 
| 우분투 <=> 윈도우 - smb 연결 시 캐시가 문제가 되나? (feat. ubuntu 22.04) (0) | 2024.06.05 | 
WRITTEN BY
- 1day1 
 하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.
			
			
			
			,
			
			
			
			
			
			
			
			
		






