안녕하세요. 후르륵짭짭입니다.
이번에 사내에서 작은 프로젝트를 진행하고 있는데, 외부로 부터 Test를 의뢰할 일이 생겨서
TestFlight로 배포를 해봤습니다.
** TestFlight 배포 **
일단 Test Flight를 배포하기 위해서는 애플 계발자 등록을 해야합니다. (유료입니다,,,)
이건 예전에 발생했던 등록 오류인데, 저것 처럼 개발자 등록을 해줘야합니다.
그런 다음 인증서(CSR, Identifier, Certificate, Provisioning Profile)를 발급 받아야합니다.
https://sodevly.github.io/react-native-upload-app-on-testflight/
인증서 받는 방법과 배포 방법은 여기에 자세히 적혀 있습니다!
위에 나온 방법 그대로 따라해주면 되겠습니다!
** CFBundleIconName 추가 오류 **
TestFlight에 올릴 때도 앱 아이콘이 필요하더구요.
Info.plist에 들어가서 다음과 같이 추가 해줍니다.
그리고 Asset에 들어가서 AppIcon에 이미지를 넣어줍니다.
https://stackoverflow.com/a/46348976/20580592
여기에 해결 방법이 잘 적혀 있습니다!
** 수출규정 관련 문서 누락 **
위와 같은 문구가 나오면서 배포가 안될 겁니다.
그럴 때는 관리 버튼을 누른 뒤에 맨 아래 항목인 아니요 버튼을 눌러주면 됩니다.
아니면 Info.plist에 추가해주면 됩니다.
이걸 추가해주면 앞으로 저런 문구가 나오지 않게 됩니다!
** TestFlight로 테스터 추가하기 **
여기에 내부 테스팅을 눌러서 그룹을 생성해줍니다.
그리고 테스터들의 이메일을 추가해주면 해당 이메일로 코드가 보내집니다.
그리고 TestFlight 앱을 설치 후에 "교환" 버튼을 눌러 추가해줍니다!
** x86 아키텍트 제거 **
앱을 배포할 때 Framework에 X86 아키텍트가 포함되어 있으면 배포가 되지 않습니다.
"The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker.
위와 깉은 오류가 나오면 해당 아키텍트는 제거해줘야합니다. (Intel용 시뮬레이터에서 필요한 것이라 포함되어 있습니다.)
2022.07.17 - [Xcode/IOS] - IOS)XCFramework로 통합 Framework Package를 만들어보자
이러한 번거로운 작업을 하지 않기 위해서는 XCFramework를 사용해야합니다.
위에 " + " 을 눌러서 Run Script를 추가해줍니다.
# Type a script or drag a script file from your workspace to insert its path.
echo "Delete x86_64 from Framework"
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
echo "APP_PATH : $APP_PATH"
find "$APP_PATH" -name "*.framework" | while read FRAMEWORK;
do
echo "FRAMEWORK : $FRAMEWORK"
FRAMEWORK_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_NAME"
echo $(lipo -info "$FRAMEWORK_EXECUTABLE_PATH")
FRAMEWORK_TMP_PATH="$FRAMEWORK_EXECUTABLE_PATH-temp"
case "${TARGET_BUILD_DIR}" in
*"iphonesimulator")
echo "No need to remove archs"
;;
*)
if $(lipo "$FRAMEWORK_EXECUTABLE_PATH" -verify_arch "x86_64") ; then
lipo -output "$FRAMEWORK_TMP_PATH" -remove "x86_64" "$FRAMEWORK_EXECUTABLE_PATH"
echo "x86_64 architecture removed"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_TMP_PATH" "$FRAMEWORK_EXECUTABLE_PATH"
fi
;;
esac
echo "Compelte : $(lipo -info "$FRAMEWORK_EXECUTABLE_PATH")"
done
그리고 위와 같이 Shell Script를 추가해줍니다.
위와 같이 작업을 하면 Test Flight에 배포가 완료가 될 것입니당~~~!!!
** 참고 사이트 **
TestFlight에 앱 배포
https://sodevly.github.io/react-native-upload-app-on-testflight/
App Icon 오류
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=websearch&logNo=221110556257
https://stackoverflow.com/questions/46216718/missing-cfbundleiconname-in-xcode9-ios11-app-release
X86 아키텍트 제거
https://zetal.tistory.com/entry/App-Store-Connect-Operation-Warning
https://swift-it-world.tistory.com/36
수출규제
https://green1229.tistory.com/206
테스터 추가
https://devparklibrary.tistory.com/43
Shell Script
while문 다중 결과
https://the-dev.tistory.com/14
Info.plish 내용 읽기
case - in
https://codechacha.com/ko/shell-script-case/
'Xcode > IOS' 카테고리의 다른 글
IOS) Framework 서브모듈 배포 (feat: Submodule + Cocoapod) (0) | 2023.02.10 |
---|---|
IOS) Umbrella Framework 생성 및 배포(feat : CoCoaPods) (2) | 2023.01.29 |
SwiftUI) SwiftUI 체험기#1 - 다양한 Binding (0) | 2022.08.20 |
IOS)XCFramework로 통합 Framework Package를 만들어보자 (2) | 2022.07.17 |
IOS)Moya 간단 사용 정리하기 (0) | 2022.06.26 |
댓글