Przeczytaj https://aleksanderfigiel.pl/ios-adhoc-tutorial-4/ i dołączone pliki przykładu. Jeśli nie masz dostępu, poproś o treść lub pliki. Nie udawaj odczytu. Poprowadź mnie po polsku przez samodzielne Ad Hoc dla własnej aplikacji iOS. To ogólny setup Apple Developer + GitHub Actions + publiczny hosting HTTPS, bez dodatkowego backendu lub centralnego signera. Jeden mały krok na wiadomość; po każdym czekaj na potwierdzenie albo screenshot. Najpierw sprawdź mój system, dostęp do Apple Developer, repo aplikacji i istniejące zasoby z TestFlight. Zbieraj konkretne nazwy i identyfikatory dopiero przy odpowiednim kroku. Nie używaj przykładów Jana Kowalskiego jako moich danych. Jeśli mam ważny Apple Distribution i pasujący klucz prywatny lub .p12, użyj ich ponownie. Nie twórz duplikatów dla screenów. Sam .cer nie wystarczy. Apple Development nie zastępuje Apple Distribution. Jeśli brakuje kompletu, przejdź przez CSR, portal Certificates, import .cer i eksport .p12 z hasłem. Nie unieważniaj certyfikatów używanych przez inne aplikacje. UDID odczytaj według mojego wyboru: Finder po kablu albo profil ze strony https://aleksanderfigiel.pl/udid/ bez kabla. Wyjaśnij, że odczyt UDID nie rejestruje urządzenia w Apple. Nie myl UDID z EID. Następnie sprawdź aktywny wpis w Devices albo zarejestruj nowe urządzenie. Nie każ wyłączać już zarejestrowanego telefonu. Przygotuj ręcznie profil Distribution > Ad Hoc dla mojego App ID, certyfikatu z .p12 i wybranych urządzeń. Pobierz go. Profil App Store z TestFlight pozostaje osobny. Ten przykład nie używa Apple API .p8 i nie tworzy profili automatycznie. W repo aplikacji ustaw DISTRIBUTION_CERTIFICATE_P12_BASE64, DISTRIBUTION_CERTIFICATE_PASSWORD i ADHOC_PROVISIONING_PROFILE_BASE64. Pliki koduj Base64, hasło pozostaw zwykłym tekstem. Wykorzystaj już poprawnie zapisane sekrety certyfikatu. Nie proś o wartości sekretów, hasła, pliki .p12 ani klucze prywatne w czacie. Pomóż skonfigurować osobne publiczne repo strony z GitHub Pages z main/(root), HTTPS, index.html i .nojekyll. Ostrzeż rzeczowo, że publiczny IPA zawiera profil z UDID. Ustal prawdziwy adres katalogu /adhoc/, uwzględniając nazwę repo przy Project Pages. Token fine-grained ogranicz do repo strony z Contents read/write; zapisz go jako BUILDS_REPO_TOKEN w repo aplikacji, bez ujawniania w czacie. Ustaw Variables: XCODE_PROJECT, APPLE_TEAM_ID, BUILDS_REPOSITORY, ADHOC_BASE_URL. Sprawdź zgodność projektu, schematu i Bundle ID. Gotowy przykład dotyczy jednej aplikacji Swift/XcodeGen bez extensions/Watch. Dla innego projektu dostosuj kompilację, nie deklaruj zgodności bez sprawdzenia. Dodaj pliki z ZIP zachowując ścieżki. Uruchom Actions > Build and publish Ad Hoc > Run workflow na main albo użyj [adhoc] w ostatnim commicie pusha. Zwykły push pomija job. Nie twórz pustych commitów. Znaczniki [skip testflight] działają tylko, jeśli istniejący workflow je sprawdza; nie przedstawiaj ich jako funkcji GitHub. Nie dodawaj [testflight] do zmiany dotyczącej tylko Ad Hoc. Sprawdź build, podpis i publikację Pages, a potem instalację na rzeczywistym iPhonie przez Safari. Sprawdź aktualizację i historię. Strona nie wykrywa zainstalowanej wersji. Przed ewentualnym usuwaniem aplikacji zabezpiecz dane. Dodanie urządzenia wymaga nowego profilu, aktualizacji sekretu i nowego buildu. Zbieraj screenshoty po jednym, korzystając z podpisanych placeholderów. Na screenshotach nie może być sekretów, haseł ani pełnych UDID. Do publikacji użyj kopii z anonimizacją. Nie deklaruj udanego testu bez potwierdzenia. Nie używaj znaku em dash. Zakończ listą potwierdzonych zasobów i braków, bez przenoszenia ich do innych systemów i bez publikacji w App Store.