feat: Phase 1 mobile tablet — Jenkins APK, PC tab, in-app update
Capacitor 확장으로 git push 시 Mobile Jenkins 빌드, PC 탭 Android/iPad 다운로드, 앱 내 APK 업데이트, iOS TestFlight API 및 Capacitor ios 프로젝트를 추가한다. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -15,4 +15,8 @@ public class MobileAppReleaseInfoDto {
|
||||
private String downloadUrl;
|
||||
/** 모바일 설치 안내 페이지 URL */
|
||||
private String installPageUrl;
|
||||
/** iPad TestFlight 초대 URL (App Store 정책상 ipa 직접 배포 불가) */
|
||||
private String iosTestFlightUrl;
|
||||
/** TestFlight 링크 제공 여부 */
|
||||
private boolean iosAvailable;
|
||||
}
|
||||
|
||||
@@ -36,13 +36,19 @@ public class MobileAppReleaseService {
|
||||
@Value("${goldenchart.mobile-app.public-base-url:}")
|
||||
private String configuredPublicBaseUrl;
|
||||
|
||||
@Value("${goldenchart.mobile-app.ios-testflight-url:}")
|
||||
private String iosTestFlightUrl;
|
||||
|
||||
public MobileAppReleaseInfoDto getInfo(String requestBaseUrl) {
|
||||
String publicBaseUrl = resolvePublicBaseUrl(requestBaseUrl);
|
||||
boolean iosAvailable = iosTestFlightUrl != null && !iosTestFlightUrl.isBlank();
|
||||
Optional<Path> apk = resolveApkPath();
|
||||
if (apk.isEmpty()) {
|
||||
return MobileAppReleaseInfoDto.builder()
|
||||
.available(false)
|
||||
.installPageUrl(buildInstallPageUrl(publicBaseUrl))
|
||||
.iosAvailable(iosAvailable)
|
||||
.iosTestFlightUrl(iosAvailable ? iosTestFlightUrl.trim() : null)
|
||||
.build();
|
||||
}
|
||||
Path file = apk.get();
|
||||
@@ -61,12 +67,16 @@ public class MobileAppReleaseService {
|
||||
.updatedAt(DT_FMT.format(updated))
|
||||
.downloadUrl(downloadUrl)
|
||||
.installPageUrl(buildInstallPageUrl(publicBaseUrl))
|
||||
.iosAvailable(iosAvailable)
|
||||
.iosTestFlightUrl(iosAvailable ? iosTestFlightUrl.trim() : null)
|
||||
.build();
|
||||
} catch (IOException e) {
|
||||
log.warn("[mobile-app] stat failed: {}", e.getMessage());
|
||||
return MobileAppReleaseInfoDto.builder()
|
||||
.available(false)
|
||||
.installPageUrl(buildInstallPageUrl(publicBaseUrl))
|
||||
.iosAvailable(iosAvailable)
|
||||
.iosTestFlightUrl(iosAvailable ? iosTestFlightUrl.trim() : null)
|
||||
.build();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user