develop
iOS 앱 adhoc으로 배포하기 본문
반응형
이전글에서 git clone이나 cocoapods을 하였다.
2021.04.04 - [ETC] - iOS shell파일로 앱스토어(appstoreconnect) 에 업로드
이제 AWS S3에 OTA(Over-the-air) 배포를 하겠다.
infoPlistPath=""
bundleVersion="$(/usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString' $infoPlistPath)"
bundleBuildVersion="$(/usr/libexec/PlistBuddy -c 'Print CFBundleVersion' $infoPlistPath)"
infoPlistPath에 Info.plist path를 넣어주면
version이랑 build를 가져올수 있다.
이 version, build는 다운로드 경로를 domin/version/build/app 이렇게 생각해서 만들었다.
/usr/local/bin/pod cache clean --all --allow-root --silent
/usr/local/bin/pod install --repo-update --allow-root --silent
/usr/bin/xcodebuild clean -workspace $rootPath/$projectName/$projectName.xcworkspace -scheme $projectName -quiet
/usr/bin/xcodebuild build -workspace $rootPath/$projectName/$projectName.xcworkspace -scheme $projectName -quiet
/usr/bin/xcodebuild archive -workspace $rootPath/$projectName/$projectName.xcworkspace -scheme $projectName -archivePath $rootPath/$projectName/archive.xcarchive -configuration Release -quiet
이전글과 비슷하게 pod cache, pod install
xcodebuild clean, build, archive를 해준다.
그리고
ExportOptions.plist파일의 내용을
touch $projectFolder/ExportOptions.plist
cat > $projectFolder/ExportOptions.plist << EOF
<?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>ad-hoc</string>
<key>manifest</key>
<dict>
<key>appURL</key>
<string>https://www.domain.com/$bundleVersion/$bundleBuildVersion/$scheme.ipa</string>
<key>displayImageURL</key>
<string>https://www.domain.com/display_image.png</string>
<key>fullSizeImageURL</key>
<string>https://www.domain.com/full_size_image.png</string>
</dict>
<key>compileBitcode</key>
<false/>
<key>destination</key>
<string>export</string>
<key>signingStyle</key>
<string>automatic</string>
<key>iCloudContainerEnvironment</key>
<string>Development</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string></string>
<key>thinning</key>
<string><none></string>
</dict>
</plist>
EOF
이렇게 만들어준다.
.plist파일을 cat으로 수정하는 이유는 appURL을 version, build에 따라 동적으로 변경되게 하려고 shell파일에서 수정해준다.
appURL, displayImageURL, fullSizeImageURL, teamID를 변경하고 앱에 맞게 수정을 한다.
그리고
/usr/bin/xcodebuild -exportArchive -allowProvisioningUpdates -allowProvisioningDeviceRegistration -archivePath $rootPath/$projectName/archive.xcarchive -exportPath $rootPath/$projectName/ -exportOptionsPlist $rootPath/$projectName/ExportOptions.plist
exportPath를 저정하고, exportOptionsPlist를 지정해준다.
그럼 scheme과 같은 이름의 .ipa 파일등이 생성된다.
/usr/local/bin/aws s3 cp $rootPath/$projectName/$scheme.ipa s3://exampleBucket/$bundleVersion/$bundleBuildVersion/
/usr/local/bin/aws s3 cp $rootPath/$projectName/manifest.plist s3://exampleBucket/$bundleVersion/$bundleBuildVersion/
그리고 aws cli를 이용에 s3에 .ipa파일과 manifest.plist파일을 업로드한다.
반응형
'ETC' 카테고리의 다른 글
시리(siri)로 젠킨스 빌드하기 (0) | 2021.06.04 |
---|---|
외부에서 token으로 젠킨스 빌드하기 (1) | 2021.06.03 |
맥에서 Jenkins 설정하기(포트, IP허용) (0) | 2021.06.02 |
iOS shell파일로 앱스토어(appstoreconnect) 에 업로드 (0) | 2021.04.04 |
MAC 에서 숨김 폴더, 파일 보기 (0) | 2020.12.27 |
Comments