Skip to content

Commit 3fd3617

Browse files
committed
Rollback sideload CI to Xcode 26.2 after Xcode 27 crash
The Xcode 27 preview IPA launched but crashed on device. Restore macos-26 / Xcode 26.2, min iOS 13, and drop the Xcode 27-only Swift -Wwarning BUILD flags. Keep the harmless EmptyInputView / Task source fixes from the bump. Co-authored-by: D3C0Y <decoder-dev@users.noreply.github.com>
1 parent aeb51f6 commit 3fd3617

679 files changed

Lines changed: 28 additions & 2756 deletions

File tree

  • .github/workflows
  • Telegram
  • build-system/MakeProject/Sources/MakeProject
  • docs
  • submodules
    • AccountContext
    • AccountUtils
    • ActionSheetPeerItem
    • ActivityIndicator
    • AdUI
    • AlertUI
    • AnimatedAvatarSetNode
    • AnimatedCountLabelNode
    • AnimatedNavigationStripeNode
    • AnimatedStickerNode
    • AnimationCompression
    • AnimationUI
    • AppLock
    • ArchivedStickerPacksNotice
    • AttachmentTextInputPanelNode
    • AttachmentUI
    • AudioBlob
    • AudioWaveform
    • AuthorizationUI
    • AuthorizationUtils
    • AvatarNode
    • AvatarVideoNode
    • BotPaymentsUI
    • BrowserUI
    • CalendarMessageScreen
    • CallListUI
    • Camera
    • ChatContextQuery
    • ChatImportUI
    • ChatInterfaceState
    • ChatListFilterSettingsHeaderItem
    • ChatListSearchItemHeader
    • ChatListSearchRecentPeersNode
    • ChatListUI
    • ChatMessageBackground
    • ChatMessageInteractiveMediaBadge
    • ChatPresentationInterfaceState
    • ChatSendMessageActionUI
    • ChatTextLinkEditUI
    • ChatTitleActivityNode
    • CheckNode
    • CloudData
    • CodeInputView
    • ComponentFlow
    • Components
      • ActivityIndicatorComponent
      • AnimatedStickerComponent
      • BalancedTextComponent
      • BlurredBackgroundComponent
      • BundleIconComponent
      • ComponentDisplayAdapters
      • Forms
        • CreditCardInputComponent
        • PrefixSectionGroupComponent
        • TextInputComponent
      • HierarchyTrackingLayer
      • LottieAnimationComponent
      • MetalImageView
      • MultilineTextComponent
      • MultilineTextWithEntitiesComponent
      • PagerComponent
      • ProgressIndicatorComponent
      • ReactionButtonListComponent
      • ReactionImageComponent
      • ReactionListContextMenuContent
      • ResizableSheetComponent
      • SheetComponent
      • SolidRoundedButtonComponent
      • UndoPanelComponent
      • ViewControllerComponent
    • ConfettiEffect
    • ContactListUI
    • ContactsPeerItem
    • ContextUI
    • CounterControllerTitleView
    • CountrySelectionUI
    • DatePickerNode
    • DebugSettingsUI
    • DeleteChatPeerActionSheetItem
    • DeviceAccess
    • DeviceLocationManager
    • DirectMediaImageCache
    • DirectionalPanGesture
    • Display
    • DrawingUI
    • Emoji
    • EncryptionKeyVisualization
    • FeaturedStickersScreen
    • FetchManagerImpl
    • FileMediaResourceStatus
    • GalleryData
    • GalleryUI
    • GameUI
    • Geocoding
    • GradientBackground
    • GraphCore
    • GraphUI
    • GridMessageSelectionNode
    • HashtagSearchUI
    • HexColor
    • HorizontalPeerItem
    • ICloudResources
    • ImageBlur
    • ImageCompression
    • ImportStickerPackUI
    • InAppPurchaseManager
    • InstantPageCache
    • InstantPageUI
    • InvisibleInkDustNode
    • InviteLinksUI
    • ItemListAddressItem
    • ItemListAvatarAndNameInfoItem
    • ItemListPeerActionItem
    • ItemListPeerItem
    • ItemListStickerPackItem
    • ItemListUI
    • ItemListVenueItem
    • JoinLinkPreviewUI
    • LanguageLinkPreviewUI
    • LanguageSuggestionUI
    • LegacyMediaPickerUI
    • LegacyUI
    • ListMessageItem
    • ListSectionHeaderNode
    • LiveLocationManager
    • LiveLocationPositionNode
    • LiveLocationTimerNode
    • LocalAuth
    • LocalMediaResources
    • LocalizedPeerData
    • LocationResources
    • LocationUI
    • ManagedAnimationNode
    • ManagedFile
    • MapResourceToAvatarSizes
    • Markdown
    • MediaPasteboardUI
    • MediaPickerUI
    • MediaPlayer
    • MediaResources
    • Media
    • MergeLists
    • MetalEngine
    • MoreButtonNode
    • MosaicLayout
    • MusicAlbumArtResources
    • NotificationMuteSettingsUI
    • NotificationSoundSelectionUI
    • NotificationsPresentationData
    • OpenInExternalAppUI
    • OverlayStatusController
    • PasscodeInputFieldNode
    • PasscodeUI
    • PassportUI
    • PasswordSetupUI
    • Pasteboard
    • PaymentMethodUI
    • Pdf
    • PeerAvatarGalleryUI
    • PeerInfoAvatarListNode
    • PeerInfoUI
    • PeerOnlineMarkerNode
    • PeerPresenceStatusManager
    • PersistentStringHash
    • PhoneInputNode
    • PhoneNumberFormat
    • PhotoResources
    • PlatformRestrictionMatching
    • Postbox
    • PremiumUI
    • PresentationDataUtils
    • ProgressNavigationButtonNode
    • PromptUI
    • QrCodeUI
    • QrCode
    • RadialStatusNode
    • Reachability
    • ReactionSelectionNode
    • SSignalKit/SwiftSignalKit
    • SaveToCameraRoll
    • ScreenCaptureDetection
    • SearchBarNode
    • SearchPeerMembers
    • SearchUI
    • SectionHeaderItem
    • SegmentedControlNode
    • SelectablePeerNode
    • SemanticStatusNode
    • SettingsUI
    • ShareController
    • ShareItems
    • ShimmerEffect
    • SinglePhoneInputNode
    • SlotMachineAnimationNode
    • SoftwareVideo
    • SolidRoundedButtonNode
    • SparseItemGrid
    • Speak
    • StatisticsUI
    • StickerPackPreviewUI
    • StickerPeekUI
    • StickerResources
    • StringPluralization
    • Svg
    • SwipeToDismissGesture
    • SwitchNode
    • TabBarUI
    • TelegramAnimatedStickerNode
    • TelegramApi
    • TelegramAudio
    • TelegramBaseController
    • TelegramCallsUI
    • TelegramCore
    • TelegramIntents
    • TelegramNotices
    • TelegramPermissionsUI
    • TelegramPermissions
    • TelegramPresentationData
    • TelegramStringFormatting
    • TelegramUIPreferences
    • TelegramUI
      • Components
        • ActionPanelComponent
        • AdPanelHeaderPanelComponent
        • AdminUserActionsSheet
        • Ads
        • AlertComponent
          • AlertCheckComponent
          • AlertHeaderComponent
          • AlertInputFieldComponent
          • AlertMultilineInputFieldComponent
          • AlertPeerComponent
          • AlertTableComponent
          • AlertTransferHeaderComponent
          • AlertWebpagePreviewComponent
        • AnimatedCounterComponent
        • AnimatedTextComponent
        • AnimationCache
        • AsyncListComponent
        • AttachmentFileController
        • AudioTranscriptionButtonComponent
        • AudioTranscriptionPendingIndicatorComponent
        • AudioWaveformComponent
        • AudioWaveformNode
        • AuthConfirmationScreen
        • AvatarBackground
        • AvatarComponent
        • AvatarEditorScreen
        • AvatarUploadToastScreen
        • BackButtonComponent
        • BadgeComponent
        • BatchVideoRendering
        • BottomButtonPanelComponent
        • ButtonComponent
        • Calls
        • CameraButtonComponent
        • CameraScreen
        • ChatControllerInteraction
        • ChatEntityKeyboardInputNode
        • ChatFolderLinkPreviewScreen
        • ChatInputNode
        • ChatInputPanelContainer
        • ChatListHeaderComponent
        • ChatListTitleView
        • ChatList
          • ChatListFilterTabContainerNode
          • ChatListHeaderNoticeComponent
          • ChatListSearchFiltersContainerNode
        • ChatParticipantRightsScreen
        • ChatScheduleTimeController
        • ChatScheduleTimeScreen
        • ChatSendButtonRadialStatusNode
        • ChatTextInputMediaRecordingButton
        • ChatThemeScreen
        • ChatTimerScreen
        • ChatTitleView
        • Chat
          • AccessoryPanelNode
          • ChatAgeRestrictionAlertController
          • ChatAvatarNavigationNode
          • ChatBotInfoItem
          • ChatButtonKeyboardInputNode
          • ChatChannelSubscriberInputPanelNode
          • ChatContextResultPeekContent
          • ChatEmptyNode
          • ChatHistoryEntry
          • ChatHistorySearchContainerNode
          • ChatInlineSearchResultsListComponent
          • ChatInputAccessoryPanel
          • ChatInputAutocompletePanel
          • ChatInputContextPanelNode
          • ChatInputMessageAccessoryPanel
          • ChatInputPanelNode
          • ChatInputTextNode
          • ChatInstantVideoMessageDurationNode
          • ChatLoadingNode
          • ChatMediaInputStickerGridItem
          • ChatMessageActionBubbleContentNode
          • ChatMessageActionButtonsNode
          • ChatMessageAnimatedStickerItemNode
          • ChatMessageAttachedContentButtonNode
          • ChatMessageAttachedContentNode
          • ChatMessageBirthdateSuggestionContentNode
          • ChatMessageBubbleContentNode
          • ChatMessageBubbleItemNode
          • ChatMessageCallBubbleContentNode
          • ChatMessageCommentFooterContentNode
          • ChatMessageCommunityChangedBubbleContentNode
          • ChatMessageContactBubbleContentNode
          • ChatMessageDateAndStatusNode
          • ChatMessageDeliveryFailedNode
          • ChatMessageDisableCopyProtectionBubbleContentNode
          • ChatMessageEventLogPreviousDescriptionContentNode
          • ChatMessageEventLogPreviousLinkContentNode
          • ChatMessageEventLogPreviousMessageContentNode
          • ChatMessageFactCheckBubbleContentNode
          • ChatMessageFileBubbleContentNode
          • ChatMessageForwardInfoNode
          • ChatMessageGameBubbleContentNode
          • ChatMessageGiftBubbleContentNode
          • ChatMessageGiftOfferBubbleContentNode
          • ChatMessageGiveawayBubbleContentNode
          • ChatMessageInstantVideoBubbleContentNode
          • ChatMessageInstantVideoItemNode
          • ChatMessageInteractiveFileNode
          • ChatMessageInteractiveInstantVideoNode
          • ChatMessageInteractiveMediaNode
          • ChatMessageInvoiceBubbleContentNode
          • ChatMessageItemCommon
          • ChatMessageItemImpl
          • ChatMessageItemView
          • ChatMessageItem
          • ChatMessageJoinedChannelBubbleContentNode
          • ChatMessageMapBubbleContentNode
          • ChatMessageMediaBubbleContentNode
          • ChatMessageNotificationItem
          • ChatMessagePaymentAlertController
          • ChatMessagePollBubbleContentNode
          • ChatMessageProfilePhotoSuggestionContentNode
          • ChatMessageReactionsFooterContentNode
          • ChatMessageReplyInfoNode
          • ChatMessageRestrictedBubbleContentNode
          • ChatMessageRichDataBubbleContentNode
          • ChatMessageSelectionInputPanelNode
          • ChatMessageSelectionNode
          • ChatMessageShareButton
          • ChatMessageStarsMediaInfoNode
          • ChatMessageStickerItemNode
          • ChatMessageStoryMentionContentNode
          • ChatMessageSuggestedPostInfoNode
          • ChatMessageSwipeToReplyNode
          • ChatMessageTextBubbleContentNode
          • ChatMessageThreadInfoNode
          • ChatMessageTodoBubbleContentNode
          • ChatMessageTransitionNode
          • ChatMessageUnlockMediaNode
          • ChatMessageUnsupportedBubbleContentNode
          • ChatMessageWallpaperBubbleContentNode
          • ChatMessageWebpageBubbleContentNode
          • ChatNavigationButton
          • ChatNewThreadInfoItem
          • ChatOverscrollControl
          • ChatPanelsComponent
          • ChatQrCodeScreen
          • ChatRankInfoScreen
          • ChatRecentActionsController
          • ChatRecordingPreviewInputPanelNode
          • ChatRecordingViewOnceButtonNode
          • ChatRichTextEditorComposer
          • ChatSearchNavigationContentNode
          • ChatSendAsContextMenu
          • ChatSendAudioMessageContextPreview
          • ChatSendStarsScreen
          • ChatShareMessageTagView
          • ChatSideTopicsPanel
          • ChatSwipeToReplyRecognizer
          • ChatTextInputActionButtonsNode
          • ChatTextInputAudioRecordingCancelIndicator
          • ChatTextInputAudioRecordingTimeNode
          • ChatTextInputPanelNode
          • ChatTextInputSlowmodePlaceholderNode
          • ChatUserInfoItem
          • EditableTokenListNode
          • FactCheckAlertController
          • ForwardAccessoryPanelNode
          • InstantVideoRadialStatusNode
          • ManagedDiceAnimationNode
          • MergedAvatarsNode
          • MessageHaptics
          • MessageInlineBlockBackgroundView
          • MessageQuoteComponent
          • PollBubbleTimerNode
          • QuickShareScreen
          • ReplyAccessoryPanelNode
          • SavedTagNameAlertController
          • ShimmeringLinkNode
          • SuggestPostAccessoryPanelNode
          • TopMessageReactions
        • CheckComponent
        • CocoonInfoScreen
        • Communities
          • CommunitiesScreen
          • CommunityAddScreen
          • CommunityAdminApprovalScreen
          • CommunityEditScreen
          • CommunityPrivateChatScreen
          • CommunityRequestsScreen
          • CommunityViewScreen
        • ComposePollScreen
        • ComposeTodoScreen
        • CompositeTextNode
        • Contacts/NewContactScreen
        • ContentReportScreen
        • ContextControllerImpl
        • ContextMenuScreen
        • ContextReferenceButtonComponent
        • CreateBotScreen
        • DCTAnimationCacheImpl
        • DCTMultiAnimationRendererImpl
        • DustEffect
        • DynamicCornerRadiusView
        • EdgeEffect
        • EditableChatTextNode
        • EmojiActionIconComponent
        • EmojiGameStakeScreen
        • EmojiStatusComponent
        • EmojiStatusSelectionComponent
        • EmojiSuggestionsComponent
        • EmojiTextAttachmentView
        • EmptyStateIndicatorComponent
        • EntityKeyboardGifContent
        • EntityKeyboard
        • FaceScanScreen
        • ForumCreateTopicScreen
        • ForumSettingsScreen
        • GifVideoLayer
        • Gifts
        • GlassBackgroundComponent
        • GlassBarButtonComponent
        • GlassControls
        • GlobalControlPanelsContext
        • GroupCallHeaderPanelComponent
        • GroupStickerPackSetupController
        • HeaderPanelContainerComponent
        • HorizontalTabsComponent
        • InteractiveTextComponent
        • ItemListDatePickerItem
        • JoinSubjectScreen
        • LegacyCamera
        • LegacyChatHeaderPanelComponent
        • LegacyInstantVideoController
        • LegacyMessageInputPanelInputView
        • LegacyMessageInputPanel
        • LensTransition
        • LiquidLens
        • ListActionItemComponent
        • ListComposePollOptionComponent
        • ListItemComponentAdaptor
        • ListItemSliderSelectorComponent
        • ListItemSwipeOptionContainer
        • ListMultilineTextFieldItemComponent
        • ListSectionComponent
        • ListSwitchItemComponent
        • ListTextFieldItemComponent
        • LiveLocationHeaderPanelComponent
        • LottieAnimationCache
        • LottieComponentEmojiContent
        • LottieComponentResourceContent
        • LottieComponent
        • LottieMetal
        • MarqueeComponent
        • MaskedContainerComponent
        • MediaAssetsContext
        • MediaEditorScreen
        • MediaEditor
        • MediaManager/PeerMessagesMediaPlaylist
        • MediaPlaybackHeaderPanelComponent
        • MediaScrubberComponent
        • MeshTransform
        • MessageFeeHeaderPanelComponent
        • MessageInputActionButtonComponent
        • MessageInputPanelComponent
        • MiniAppListScreen
        • MinimizedContainer
        • MoreHeaderButton
        • MultiAnimationRenderer
        • MultiScaleTextNode
        • MultiplexedVideoNode
        • NavigationBarImpl
        • NavigationSearchComponent
        • NavigationStackComponent
        • NotificationExceptionsScreen
        • NotificationPeerExceptionController
        • OpenUserGeneratedUrl
        • OptionButtonComponent
        • PeerAllowedReactionsScreen
        • PeerInfo
          • AccountPeerContextItem
          • AffiliateProgramSetupScreen
          • CollectionTabItemComponent
          • MessagePriceItem
          • PeerCopyProtectionInfoScreen
          • PeerInfoChatListPaneNode
          • PeerInfoChatPaneNode
          • PeerInfoCoverComponent
          • PeerInfoPaneNode
          • PeerInfoRatingComponent
          • PeerInfoScreen
          • PeerInfoStoryGridScreen
          • PeerInfoVisualMediaPaneNode
          • PostSuggestionsSettingsScreen
          • ProfileLevelInfoScreen
          • ProfileLevelRatingBarComponent
          • VerifyAlertController
        • PeerManagement
          • OldChannelsController
          • OwnershipTransferController
        • PeerNameTextComponent
        • PeerReportScreen
        • PeerSelectionController
        • PlainButtonComponent
        • PollStatsScreen
        • PremiumAlertController
        • PremiumGiftAttachmentScreen
        • PremiumLockButtonSubtitleComponent
        • PremiumPeerShortcutComponent
        • Premium
          • PremiumCoinComponent
          • PremiumDiamondComponent
          • PremiumStarComponent
        • ProxyServerPreviewScreen
        • RankChatPreviewItem
        • RasterizedCompositionComponent
        • Resources
          • FetchAudioMediaResource
          • FetchVideoMediaResource
        • RichTextAttachmentScreen
        • RichTextEditorMediaView
        • RichTextEditorMessageConversion
        • RichTextEditor
        • SaveProgressScreen
        • SavedMessages/SavedMessagesScreen
        • ScrollComponent
        • SearchInputPanelComponent
        • SectionTitleContextItem
        • SegmentControlComponent
        • SendInviteLinkScreen
        • Settings
          • AccountFreezeInfoScreen
          • ArchiveInfoScreen
          • AutomaticBusinessMessageSetupScreen
          • BirthdayPickerScreen
          • BoostLevelIconComponent
          • BotSettingsScreen
          • BusinessHoursSetupScreen
          • BusinessIntroSetupScreen
          • BusinessLinkNameAlertController
          • BusinessLocationSetupScreen
          • ChatbotSetupScreen
          • CollectibleItemInfoScreen
          • GenerateThemeName
          • LanguageSelectionScreen
          • NewSessionInfoScreen
          • PasskeysScreen
          • PeerNameColorItem
          • PeerNameColorScreen
          • PeerSelectionScreen
          • QuickReactionSetupController
          • QuickReplyNameAlertController
          • SettingsThemeWallpaperNode
          • ThemeAccentColorScreen
          • ThemeCarouselItem
          • ThemeSettingsThemeItem
          • TimezoneSelectionScreen
          • WallpaperGalleryScreen
          • WallpaperGridScreen
        • ShareExtensionContext
        • ShareScreen
        • ShareWithPeersScreen
        • ShimmeringMask
        • SliderComponent
        • SliderContextItem
        • SpaceWarpView
        • StarsParticleEffect
        • Stars
          • BalanceNeededScreen
          • ItemShimmeringLoadingComponent
          • StarsAvatarComponent
          • StarsBalanceOverlayComponent
          • StarsImageComponent
          • StarsIntroScreen
          • StarsPurchaseScreen
          • StarsTransactionScreen
          • StarsTransactionsScreen
          • StarsTransferScreen
          • StarsWithdrawalScreen
        • StickerPickerScreen
        • Stickers/StickerPackEditTitleController
        • StorageUsageScreen
        • Stories
          • AvatarStoryIndicatorComponent
          • ForwardInfoPanelComponent
          • LiveChat/StoryLiveChatMessageComponent
          • PeerListItemComponent
          • StoryContainerScreen
          • StoryFooterPanelComponent
          • StoryPeerListComponent
          • StoryQualityUpgradeSheetScreen
          • StorySetIndicatorComponent
          • StoryStealthModeSheetScreen
        • StreamingTextReveal
        • SubcodecAnimationCacheImpl
        • SubcodecMultiAnimationRendererImpl
        • SuggestedPostApproveAlert
        • SwitchComponent
        • TabBarComponent
        • TabSelectionRecognizer
        • TabSelectorComponent
        • TelegramAccountAuxiliaryMethods
        • TelegramUIDeclareEncodables
        • TextBadgeComponent
        • TextFieldComponent
        • TextLoadingEffect
        • TextNodeWithEntities
        • TextProcessingScreen
        • ToastComponent
        • TokenListTextField
        • TooltipComponent
        • TranslateHeaderPanelComponent
        • TranslationLanguagesContextMenuContent
        • Utils
          • AnimatableProperty
          • GenerateStickerPlaceholderImage
          • RoundedRectWithTailPath
        • VideoAnimationCache
        • VideoMessageCameraScreen
        • VideoPlaybackControlsComponent
        • VolumeSliderContextItem
        • WallpaperPreviewMedia
    • TelegramUniversalVideoContent
    • TelegramUpdateUI
    • TelegramVoip
    • TemporaryCachedPeerDataManager
    • TextFormat
    • TextInputMenu
    • TextSelectionNode
    • TinyThumbnail
    • TooltipUI
    • TouchDownGesture
    • TranslateUI
    • Tuples
    • UndoUI
    • UrlEscaping
    • UrlHandling
    • UrlWhitelist
    • Utils
    • WallpaperBackgroundNode
    • WallpaperResources
    • Weather
    • WebUI
    • WebsiteType
    • WidgetItemsUtils
    • WidgetItems
    • lottie-ios
  • third-party/SwiftMath

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/build.yml‎

Lines changed: 20 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,9 @@ permissions:
3434

3535
jobs:
3636
build:
37-
# Xcode 27 public-preview image (arm64). Do not fall back to macos-26 /
38-
# Xcode 26 — that silently defeats the toolchain bump.
39-
name: Build IPA (xcode-27)
40-
runs-on: xcode-27
37+
# Xcode 27 preview IPA crashed on device — stay on macos-26 / Xcode 26.2.
38+
name: Build IPA (macos-26)
39+
runs-on: macos-26
4140
timeout-minutes: 240
4241

4342
env:
@@ -69,64 +68,26 @@ jobs:
6968
XCODE_VERSION="$(python3 -c 'import json; print(json.load(open("versions.json"))["xcode"])')"
7069
DEVELOPER_DIR="/Applications/Xcode_${XCODE_VERSION}.app/Contents/Developer"
7170
if [ ! -d "$DEVELOPER_DIR" ]; then
72-
# Preview images ship betas as Xcode_27_beta_N.app (+ optional
73-
# Xcode_27.0.app / Xcode.app symlinks). Never accept Xcode 26 here.
74-
CANDIDATE="$(ls -d /Applications/Xcode_27*.app 2>/dev/null | sort -V | tail -1 || true)"
75-
[ -n "$CANDIDATE" ] || {
76-
echo "::error::No Xcode 27.x found under /Applications (wanted ${XCODE_VERSION})"
77-
ls -d /Applications/Xcode*.app 2>/dev/null || true
78-
exit 1
79-
}
71+
CANDIDATE="$(ls -d /Applications/Xcode_26*.app 2>/dev/null | sort -V | tail -1 || true)"
72+
[ -n "$CANDIDATE" ] || { echo "::error::No Xcode 26.x found"; exit 1; }
8073
DEVELOPER_DIR="${CANDIDATE}/Contents/Developer"
81-
echo "::warning::using $(basename "$CANDIDATE") instead of Xcode_${XCODE_VERSION}.app"
74+
echo "::warning::using $(basename "$CANDIDATE") instead of ${XCODE_VERSION}"
8275
fi
8376
sudo xcode-select -s "$DEVELOPER_DIR"
8477
xcodebuild -version
85-
echo "DEVELOPER_DIR=$DEVELOPER_DIR"
8678
echo "CPUS=$(sysctl -n hw.ncpu)"
87-
ls -d /Applications/Xcode*.app 2>/dev/null || true
8879
8980
- name: Prepare Metal toolchain
9081
run: |
9182
set -euo pipefail
92-
# Xcode 27 betas omit the Metal component. Do NOT trust `xcrun -f metal`:
93-
# it can resolve the stub under XcodeDefault.xctoolchain while the real
94-
# MetalToolchain cryptex is still missing (`xcrun metal` then fails).
95-
# Download as the runner user (not only root) so
96-
# ~/Library/.../XcodeToMetalToolchainIndexMapping.plist is written.
97-
clear_xcrun() {
98-
rm -f "$(getconf DARWIN_USER_TEMP_DIR)/xcrun_db" || true
99-
sudo rm -f "$(sudo getconf DARWIN_USER_TEMP_DIR)/xcrun_db" || true
100-
}
101-
metal_ok() {
102-
clear_xcrun
103-
xcrun metal -v >/dev/null 2>&1
104-
}
105-
106-
echo "=== before MetalToolchain ==="
107-
xcodebuild -showComponent MetalToolchain 2>&1 || true
108-
xcrun -f metal 2>&1 || true
109-
110-
if metal_ok; then
111-
echo "metal already executable"
83+
if xcrun -f metal >/dev/null 2>&1; then
84+
echo "metal already available: $(xcrun -f metal)"
11285
else
113-
echo "Downloading MetalToolchain as runner…"
114-
xcodebuild -downloadComponent MetalToolchain
115-
clear_xcrun
116-
if ! metal_ok; then
117-
echo "Retry with sudo…"
118-
sudo xcodebuild -downloadComponent MetalToolchain
119-
clear_xcrun
120-
fi
86+
sudo xcodebuild -downloadComponent MetalToolchain
87+
rm -f "$(getconf DARWIN_USER_TEMP_DIR)/xcrun_db" || true
12188
fi
122-
123-
echo "=== after MetalToolchain ==="
124-
xcodebuild -showComponent MetalToolchain 2>&1 || true
12589
xcrun -f metal
126-
# Prefer the SDK-scoped lookup (points at the cryptex when installed).
127-
xcrun --sdk macosx -f metal 2>&1 || true
12890
xcrun metal -v
129-
xcrun --sdk macosx metal -v
13091
13192
- name: Free disk space
13293
run: |
@@ -147,11 +108,16 @@ jobs:
147108
path: |
148109
${{ env.BAZEL_CACHE_DIR }}
149110
${{ env.BAZEL_REPO_CACHE }}
150-
# Bust when Xcode/SDK major changes (versions.json). Prefer xcode-27
151-
# caches; do not restore older macos-26 / Xcode 26 warm caches.
152-
key: bazel-warm-xcode27-release_arm64-${{ hashFiles('versions.json', 'MODULE.bazel', 'MODULE.bazel.lock') }}
111+
# release_arm64 cache; versions.json bump isolates from Xcode 27 caches.
112+
key: bazel-warm-release_arm64-${{ hashFiles('versions.json', 'MODULE.bazel', 'MODULE.bazel.lock') }}
153113
restore-keys: |
154-
bazel-warm-xcode27-release_arm64-
114+
bazel-warm-release_arm64-
115+
bazel-warm-ci_arm64-
116+
bazel-pm-macOS-ci_arm64-
117+
bazel-turbo-macOS-ci_arm64-
118+
bazel-pm-
119+
bazel-turbo-
120+
bazel-
155121
156122
- name: Write sideload configuration
157123
env:
@@ -218,7 +184,6 @@ jobs:
218184
--disableExtensions \
219185
--skipDsym \
220186
--ciFast \
221-
--continueOnError \
222187
--outputBuildArtifactsPath=build/artifacts \
223188
2>&1 | tee release-build.log
224189
@@ -288,7 +253,7 @@ jobs:
288253
289254
### Build
290255
- Configuration: \`release_arm64\` + \`build-system/fake-codesigning\`
291-
- Toolchain: Xcode 27 / iOS 27 SDK (\`runs-on: xcode-27\`)
256+
- Toolchain: Xcode 26.2 (\`runs-on: macos-26\`) — Xcode 27 preview parked (device crash)
292257
- Bundle / team (build-time): \`ph.telegra.Telegraph\` / \`C67CF9S4VU\`
293258
- Extensions / Siri / iCloud: disabled
294259
- Commit: \`${GITHUB_SHA}\`

‎Telegram/BUILD‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,7 @@ genrule(
160160
],
161161
)
162162

163-
# Xcode 27 / iOS 27 SDK libc++ rejects deployment targets below iOS 15.
164-
minimum_os_version = "15.0"
163+
minimum_os_version = "13.0"
165164

166165
notificationServiceExtensionVersion = "v1"
167166

‎build-system/MakeProject/Sources/MakeProject/ProjectGenerator.swift‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class ProjectGenerator {
5656
"SWIFT_ENABLE_EXPLICIT_MODULES": "NO", // Disable explicit module builds for Swift
5757
"ENABLE_STRICT_OBJC_MSGSEND": "YES",
5858
"GCC_NO_COMMON_BLOCKS": "YES",
59-
"IPHONEOS_DEPLOYMENT_TARGET": "15.0",
59+
"IPHONEOS_DEPLOYMENT_TARGET": "13.0",
6060
"MTL_ENABLE_DEBUG_INFO": "INCLUDE_SOURCE",
6161
"ONLY_ACTIVE_ARCH": "YES",
6262
"SDKROOT": "iphoneos",

‎docs/SIDELOAD.md‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,4 @@ features (stored in AccountManager + App Group UserDefaults for NSE):
8686

8787
## Toolchain note (Xcode / iOS)
8888

89-
CI targets **Xcode 27 / iOS 27 SDK** via the GitHub `xcode-27` runner image (`versions.json` → `"xcode": "27.0"`). The preview image omits Metal by default; the workflow downloads `MetalToolchain` (as the runner user) and verifies `xcrun metal -v` before the Bazel build. Make.py always uses `--overrideXcodeVersion` so beta Xcode version strings are accepted.
90-
91-
**Minimum iOS: 15.0** — Xcode 27’s libc++ rejects deployment targets below iOS 15 (`The selected platform is no longer supported by libc++`). The app `minimum_os_version` in `Telegram/BUILD` was raised from 13.0 accordingly.
92-
93-
Swift modules keep `-warnings-as-errors`, but each such target appends `-Wwarning ImplicitStrongCapture` and `-Wwarning DeprecatedDeclaration` (SE-0443 last-wins) so Xcode 27 diagnostic noise does not block the sideload IPA. Migrating call sites is follow-up work.
89+
CI stays on **Xcode 26.2** (`versions.json`, `runs-on: macos-26`). An attempt to ship on the Xcode 27 preview runner produced an installable IPA that **crashed on device**; that toolchain bump is parked until the beta runtime is stable. Make.py uses `--overrideXcodeVersion`.

‎submodules/AccountContext/BUILD‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ swift_library(
88
]),
99
copts = [
1010
"-warnings-as-errors",
11-
# Xcode 27: keep new diagnostic groups as warnings (SE-0443 last-wins)
12-
"-Wwarning", "ImplicitStrongCapture",
13-
"-Wwarning", "DeprecatedDeclaration",
14-
"-Wwarning", "NoUseUnstructuredThrowingTask",
1511
],
1612
deps = [
1713
"//submodules/TelegramAudio:TelegramAudio",

‎submodules/AccountUtils/BUILD‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ swift_library(
88
]),
99
copts = [
1010
"-warnings-as-errors",
11-
# Xcode 27: keep new diagnostic groups as warnings (SE-0443 last-wins)
12-
"-Wwarning", "ImplicitStrongCapture",
13-
"-Wwarning", "DeprecatedDeclaration",
14-
"-Wwarning", "NoUseUnstructuredThrowingTask",
1511
],
1612
deps = [
1713
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",

‎submodules/ActionSheetPeerItem/BUILD‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ swift_library(
88
]),
99
copts = [
1010
"-warnings-as-errors",
11-
# Xcode 27: keep new diagnostic groups as warnings (SE-0443 last-wins)
12-
"-Wwarning", "ImplicitStrongCapture",
13-
"-Wwarning", "DeprecatedDeclaration",
14-
"-Wwarning", "NoUseUnstructuredThrowingTask",
1511
],
1612
deps = [
1713
"//submodules/TelegramCore:TelegramCore",

‎submodules/ActivityIndicator/BUILD‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ swift_library(
88
]),
99
copts = [
1010
"-warnings-as-errors",
11-
# Xcode 27: keep new diagnostic groups as warnings (SE-0443 last-wins)
12-
"-Wwarning", "ImplicitStrongCapture",
13-
"-Wwarning", "DeprecatedDeclaration",
14-
"-Wwarning", "NoUseUnstructuredThrowingTask",
1511
],
1612
deps = [
1713
"//submodules/Display:Display",

‎submodules/AdUI/BUILD‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ swift_library(
88
]),
99
copts = [
1010
"-warnings-as-errors",
11-
# Xcode 27: keep new diagnostic groups as warnings (SE-0443 last-wins)
12-
"-Wwarning", "ImplicitStrongCapture",
13-
"-Wwarning", "DeprecatedDeclaration",
14-
"-Wwarning", "NoUseUnstructuredThrowingTask",
1511
],
1612
deps = [
1713
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",

‎submodules/AlertUI/BUILD‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,6 @@ swift_library(
88
]),
99
copts = [
1010
"-warnings-as-errors",
11-
# Xcode 27: keep new diagnostic groups as warnings (SE-0443 last-wins)
12-
"-Wwarning", "ImplicitStrongCapture",
13-
"-Wwarning", "DeprecatedDeclaration",
14-
"-Wwarning", "NoUseUnstructuredThrowingTask",
1511
],
1612
deps = [
1713
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",

0 commit comments

Comments
 (0)