# Guideline 4.8 Login Services: χρειάζεται Sign in with Apple;

> Guideline 4.8: αν η app σου έχει σύνδεση με Google ή Facebook, πρόσθεσε μια σύνδεση που προστατεύει το e-mail, όπως της Apple. Εξαιρέσεις, κώδικας Expo.

Αρχική σελίδα: [Guideline 4.8 Login Services: χρειάζεται Sign in with Apple;](https://devoria.fr/el/blog/guideline-4-8-login-services-sign-in-with-apple)
Συγγραφέας: [Mehdi Azizi](https://devoria.fr/el/mehdi-azizi)
Δημοσίευση: 2026-10-27
Τελευταία αναθεώρηση περιεχομένου: 2026-10-27


Η guideline 4.8 ισχύει μόλις η app σου χρησιμοποιεί Google, Facebook ή άλλη σύνδεση τρίτου για να δημιουργήσει τον κύριο λογαριασμό. Τότε απαιτεί μια άλλη, ισοδύναμη επιλογή σύνδεσης, που περιορίζει τα δεδομένα στο όνομα και το e-mail, επιτρέπει την απόκρυψη του e-mail και δεν παρακολουθεί τον χρήστη για διαφημίσεις χωρίς τη συγκατάθεσή του. **Από τον Ιανουάριο του 2024, αυτή η επιλογή δεν είναι υποχρεωτικά το «Sign in with Apple», αλλά είναι αυτή που αναφέρει η ίδια η Apple στα μηνύματα απόρριψης.**

Στις δικές μου apps, το Solys και το Nolera προσφέρουν Apple, Google και e-mail. Αυτός ο οδηγός ξεκινά από το τρέχον κείμενο της Apple, μετά δείχνει πώς προσθέτω τη σύνδεση Apple σε μια app Expo συνδεδεμένη με Supabase, και τι αλλάζει αυτό στη διαγραφή λογαριασμού. Για τη γενική εικόνα των λόγων απόρριψης, διάβασε καλύτερα [γιατί η Apple απορρίπτει μια app](https://devoria.fr/el/blog/aporripsi-app-apple-app-store-aities).

## Τι λέει η guideline 4.8 Login Services;

Η 4.8 βρίσκεται στην ενότητα 4, «Design», των [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#login-services). Αφορά τις apps που χρησιμοποιούν «a third-party or social login service» για να δημιουργήσουν ή να πιστοποιήσουν τον κύριο λογαριασμό: Facebook Login, Google Sign-In, Log in with X, LinkedIn, Amazon ή WeChat. Αυτές οι apps πρέπει επίσης να προσφέρουν, «as an equivalent option», μια άλλη υπηρεσία σύνδεσης που πληροί τρεις προϋποθέσεις.

| Προϋπόθεση της Apple        | Με απλά λόγια                                |
| --------------------------- | -------------------------------------------- |
| Περιορισμένα δεδομένα       | Όνομα και e-mail, τίποτα παραπάνω            |
| Δυνατότητα ιδιωτικού e-mail | Ο χρήστης μπορεί να το κρύψει                |
| Όχι διαφημίσεις χωρίς άδεια | Καμία διαφημιστική παρακολούθηση χωρίς άδεια |

Το κείμενο ορίζει επίσης τον κύριο λογαριασμό: αυτόν που δημιουργεί ο χρήστης στην app σου για να ταυτοποιηθεί, να συνδεθεί και να έχει πρόσβαση στις λειτουργίες σου. Σύμφωνα με αυτόν τον ορισμό, **ένα κουμπί Google που χρησιμεύει μόνο για εισαγωγή αρχείου δεν δημιουργεί κύριο λογαριασμό**. Η 4.8 αφορά την οθόνη από την οποία μπαίνεις στην app σου.

### Τι άλλαξε τον Ιανουάριο του 2024

Πριν το 2024, ο κανόνας επέβαλλε το «Sign in with Apple» στις apps που χρησιμοποιούσαν σύνδεση τρίτου για τον κύριο λογαριασμό. Στις [25 Ιανουαρίου 2024](https://developer.apple.com/news/?id=f1v8pyay), η Apple χαλάρωσε αυτό το σημείο: μπορείς να προσφέρεις τη σύνδεση Apple ή μια ισοδύναμη υπηρεσία που προστατεύει την ιδιωτικότητα. Πολλές σελίδες λένε ακόμα το αντίθετο. Η [τεκμηρίωση του Expo](https://docs.expo.dev/versions/latest/sdk/apple-authentication/) γράφει ακόμα ότι μια app με σύνδεση τρίτου πρέπει να προσφέρει Apple.

Στην πράξη, το μήνυμα απόρριψης 4.8 που δημοσιεύτηκε στα [developer forums της Apple](https://developer.apple.com/forums/thread/765145) τελειώνει έτσι: «Note that Sign in with Apple meets the requirements specified in guideline 4.8». Η Apple δεν κατονομάζει καμία άλλη συμβατή υπηρεσία. **Για να μην παίζω μαντεψιές με τον reviewer, προσθέτω τη σύνδεση Apple.**

## Οι πέντε εξαιρέσεις που προβλέπει το κείμενο

Η Apple αναφέρει πέντε περιπτώσεις όπου δεν απαιτείται άλλη σύνδεση:

1. **Η app σου χρησιμοποιεί μόνο το δικό σου σύστημα λογαριασμών**, για παράδειγμα e-mail με κωδικό ή κωδικό που στέλνεται με e-mail.
2. Η app σου είναι εναλλακτικό κατάστημα εφαρμογών, ή διανέμεται από κάποιο, με σύνδεση που ανήκει σε αυτό το κατάστημα.
3. Η app σου είναι εκπαιδευτική, εταιρική ή επαγγελματική και απαιτεί υπάρχοντα λογαριασμό σχολείου ή εταιρείας.
4. Η app σου χρησιμοποιεί σύστημα ηλεκτρονικής ταυτότητας που υποστηρίζεται από κράτος ή κλάδο.
5. Η app σου είναι client μιας συγκεκριμένης υπηρεσίας τρίτου: ο χρήστης συνδέεται στο e-mail ή στο κοινωνικό του δίκτυο για να δει το δικό του περιεχόμενο.

Πριν καν από αυτές τις εξαιρέσεις, κάνε στον εαυτό σου μια ερώτηση: χρειάζεται η app σου λογαριασμό; Αν όχι, η guideline 5.1.1(v) ζητά να μπορεί να χρησιμοποιηθεί χωρίς σύνδεση, όπως εξηγώ στον [οδηγό της guideline 5.1.1](https://devoria.fr/el/blog/guideline-5-1-1-aporripsi-app-store).

| Η οθόνη σύνδεσής σου         | Ισχύει η 4.8;                |
| ---------------------------- | ---------------------------- |
| Κανένας λογαριασμός          | Όχι                          |
| Μόνο e-mail ή κωδικός        | Όχι                          |
| Μόνο Google                  | Ναι                          |
| Google και e-mail            | Ναι, κατά πάσα πιθανότητα    |
| Google και Apple             | Ναι, και είσαι συμβατός      |
| Υπάρχων λογαριασμός σχολείου | Όχι                          |
| Google για εισαγωγή          | Όχι, δεν υπάρχει λογαριασμός |

## Προσθήκη του «Sign in with Apple» σε app Expo

### 1. Εγκατάσταση του module και δήλωση της capability

```bash
npx expo install expo-apple-authentication
```

Η τεκμηρίωση του Expo ζητά μετά να ενεργοποιήσεις την capability στη ρύθμιση της app:

```json
{
  "expo": {
    "ios": {
      "usesAppleSignIn": true,
      "infoPlist": { "CFBundleAllowMixedLocalizations": true }
    }
  }
}
```

Η δεύτερη γραμμή εμφανίζει το κουμπί στη γλώσσα του iPhone. Με το EAS Build, η capability ενεργοποιείται στο αναγνωριστικό της app σου τη στιγμή του build. **Είναι native ρύθμιση: φεύγει με νέο build, ποτέ με απομακρυσμένη ενημέρωση.**

Μια παγίδα που βρήκα ξαναδιαβάζοντας τον αρχικό κώδικα των kits μου: αυτή η capability απαιτεί υπογραφή, ακόμα και για να τρέξεις την app στον simulator. Σε Mac χωρίς πιστοποιητικό «Apple Development», το τοπικό compile αποτύγχανε με «No code signing certificates are available to use». Η λύση: ενεργοποιείς τη σύνδεση Apple μόνο όταν ο server αυθεντικοποίησης είναι ρυθμισμένος.

### 2. Εμφάνιση του επίσημου κουμπιού, εξίσου ορατού με το Google

Οι [κανόνες design της Apple](https://developer.apple.com/design/human-interface-guidelines/sign-in-with-apple) είναι σαφείς: το κουμπί Apple δεν πρέπει να είναι μικρότερο από τα άλλα κουμπιά σύνδεσης, και δεν πρέπει να χρειάζεται scroll για να φανεί. Το component του Expo σχεδιάζει το επίσημο κουμπί, με τίτλο εγκεκριμένο από την Apple.

```tsx
import * as AppleAuthentication from "expo-apple-authentication";
import { useEffect, useState } from "react";

export function BoutonApple({ onPress }: { onPress: () => void }) {
  const [disponible, setDisponible] = useState(false);

  useEffect(() => {
    AppleAuthentication.isAvailableAsync().then(setDisponible);
  }, []);

  // Android και web: χωρίς σύνδεση Apple, χωρίς κουμπί.
  if (!disponible) return null;

  return (
    <AppleAuthentication.AppleAuthenticationButton
      buttonType={AppleAuthentication.AppleAuthenticationButtonType.CONTINUE}
      buttonStyle={AppleAuthentication.AppleAuthenticationButtonStyle.BLACK}
      cornerRadius={12}
      style={{ width: "100%", height: 50 }}
      onPress={onPress}
    />
  );
}
```

Το Expo διευκρινίζει ότι το κουμπί δεν εμφανίζεται χωρίς πλάτος και ύψος. Το χρώμα και η στρογγυλοποίηση ορίζονται με `buttonStyle` και `cornerRadius`, όχι με το style.

### 3. Άνοιγμα session στο Supabase

```ts
import * as AppleAuthentication from "expo-apple-authentication";
import { supabase } from "./supabase";

export async function connexionApple(): Promise<"ok" | "annule"> {
  try {
    const credential = await AppleAuthentication.signInAsync({
      requestedScopes: [
        AppleAuthentication.AppleAuthenticationScope.FULL_NAME,
        AppleAuthentication.AppleAuthenticationScope.EMAIL,
      ],
    });
    if (!credential.identityToken) throw new Error("Λείπει το token της Apple");
    const { error } = await supabase.auth.signInWithIdToken({
      provider: "apple",
      token: credential.identityToken,
    });
    if (error) throw error;
    // Το μικρό όνομα έρχεται μόνο στην πρώτη εξουσιοδότηση: το κρατάμε αμέσως.
    const prenom = credential.fullName?.givenName;
    if (prenom) await supabase.auth.updateUser({ data: { prenom } });
    return "ok";
  } catch (e) {
    if ((e as { code?: string }).code === "ERR_REQUEST_CANCELED")
      return "annule";
    throw e;
  }
}
```

Τέσσερις λεπτομέρειες μετράνε, από την [τεκμηρίωση του Supabase](https://supabase.com/docs/guides/auth/social-login/auth-apple), του Expo και τους κανόνες design της Apple:

- **Στο Supabase, δήλωσε το bundle identifier σου** στα Client IDs του provider Apple. Μια αμιγώς native app δεν χρειάζεται secret key για να συνδεθεί. Πρόσθεσε το `host.exp.Exponent` αν δοκιμάζεις στο Expo Go.
- **Το μικρό όνομα και το e-mail έρχονται μόνο μία φορά.** Η Apple δεν τα ξαναστέλνει στις επόμενες συνδέσεις: αποθήκευσέ τα από την πρώτη απάντηση.
- **Το e-mail μπορεί να είναι διεύθυνση relay.** Η Apple συνιστά να μη ζητάς μετά προσωπική διεύθυνση.
- **Η ακύρωση δεν είναι σφάλμα.** Στο Nolera, το κλείσιμο του φύλλου της Apple δεν εμφανίζει κανένα κόκκινο μήνυμα: είναι εσκεμμένη κίνηση.

Μια πραγματική περίπτωση στο Solys, τον Αύγουστο του 2026: τα κουμπιά Apple και Google ήταν στην app, αλλά κανένας από τους δύο providers δεν ήταν ενεργοποιημένος στο Supabase. Ο κώδικας ήταν σωστός, η διόρθωση έγινε στον server, χωρίς νέο build. **Ένα κουμπί Apple που αποτυγχάνει μπροστά στον reviewer σημαίνει απόρριψη 2.1 αντί για απόρριψη 4.8.** Η λεπτομέρεια είναι στον [οδηγό της guideline 2.1](https://devoria.fr/el/blog/guideline-2-1-app-store-rejection-fix).

### 4. Δοκιμή σε πραγματικό iPhone

Το Expo προειδοποιεί ότι ο simulator επιτρέπει μόνο περιορισμένη δοκιμή, και ότι τα αναγνωριστικά που λαμβάνεις στο Expo Go διαφέρουν από αυτά της δημοσιευμένης app. Δοκίμασε σύνδεση, αποσύνδεση και επανασύνδεση σε πραγματικό iPhone, με build [TestFlight](https://devoria.fr/el/blog/testflight-dokimi-efarmogis-iphone).

## Σύνδεση Apple και διαγραφή λογαριασμού

Η guideline 5.1.1(v) ζητά ένας λογαριασμός που δημιουργήθηκε στην app να μπορεί να διαγραφεί μέσα από την app. Με τη σύνδεση Apple, η [σελίδα της Apple για τη διαγραφή λογαριασμού](https://developer.apple.com/support/offering-account-deletion-in-your-app) προσθέτει ένα βήμα: χρήση του REST API του Sign in with Apple για να [ανακαλέσεις τα tokens](https://developer.apple.com/documentation/signinwithapplerestapi/revoke-tokens) του χρήστη.

Αυτή η ανάκληση χρειάζεται δύο πράγματα: ένα token του χρήστη, που το παίρνεις επικυρώνοντας έναν κωδικό εξουσιοδότησης, και ένα secret υπογεγραμμένο με το ιδιωτικό σου κλειδί Sign in with Apple. **Ακόμα κι αν η native σύνδεση δεν χρειάζεται secret key, η ανάκληση χρειάζεται, και αυτό μένει στον server σου.** Το γιατί είναι στο [μυστικό API key σε app Expo](https://devoria.fr/el/blog/secret-api-key-expo-app-what-to-protect).

Στο Nolera, τη στιγμή της διαγραφής λογαριασμού, η app ζητά ξανά σύνδεση Apple για να πάρει φρέσκο κωδικό εξουσιοδότησης. Τον στέλνει σε μια server function, που τον ανταλλάσσει με την Apple και μετά ανακαλεί το token. Αν ο χρήστης ακυρώσει, ένα σαφές μήνυμα το λέει και τίποτα δεν διαγράφεται. Η υπόλοιπη διαδρομή, μαζί με δεδομένα, συνδρομή και δοκιμές, είναι στο [διαγραφή λογαριασμού iOS](https://devoria.fr/el/blog/ios-account-deletion-test-before-apple-review).

## Τι να απαντήσεις στην Apple μετά από απόρριψη 4.8

Το μήνυμα της Apple προτείνει δύο διεξόδους. Ή προσθέτεις μια ισοδύναμη επιλογή. Ή η app σου έχει ήδη μία: απαντάς στο App Store Connect, λες ποια είναι και γιατί πληροί τις τρεις προϋποθέσεις. Η Apple προτείνει επίσης να ενημερώσεις τα screenshots που δείχνουν την οθόνη σύνδεσης. Η διαδικασία για να [απαντήσεις στο App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/) είναι ίδια με τους άλλους κανόνες.

Ορίστε ένα πρότυπο στα αγγλικά, για να το προσαρμόσεις (άλλαξε τον αριθμό του build):

```text
Hello,

Thank you for your review.

Build X adds Sign in with Apple as an equivalent login option.
It appears on the same screen as Google Sign-In, with the same
size, and is visible without scrolling.

How to verify: launch the app, open the sign-in screen and
tap "Continue with Apple".

We also updated the screenshots that show the sign-in screen.

Best regards,
```

## Η check-list 4.8 πριν την υποβολή

- Ξέρεις αν η app σου χρειάζεται λογαριασμό. Αν όχι, χρησιμοποιείται χωρίς σύνδεση.
- Αν Google, Facebook ή X δημιουργούν τον λογαριασμό, η σύνδεση Apple είναι στην ίδια οθόνη.
- Το κουμπί Apple είναι το επίσημο, εξίσου μεγάλο με τα άλλα, ορατό χωρίς scroll.
- Ο provider Apple είναι ενεργοποιημένος στον server, με το bundle identifier σου.
- Μια ακύρωση σε γυρίζει στην οθόνη σύνδεσης, χωρίς μήνυμα σφάλματος.
- Το μικρό όνομα και το e-mail αποθηκεύονται από την πρώτη σύνδεση.
- Η διαγραφή λογαριασμού ανακαλεί το token της Apple, από τον server σου.
- Όλα έχουν δοκιμαστεί σε πραγματικό iPhone, με λογαριασμό Apple που δεν έχει συνδεθεί ποτέ στην app.
- Τα screenshots σου δείχνουν την οθόνη σύνδεσης όπως είναι στο build που στέλνεις.

## Διόρθωσε την απόρριψη πριν ξαναστείλεις την app

Αν η app σου μόλις απορρίφθηκε για 4.8, το [Apple Review Kit](https://devoria.fr/el/kits/app-review) συγκεντρώνει όσα ελέγχω πριν από κάθε υποβολή, με δύο skills που ξαναδιαβάζουν το project σου στο Claude Code και ετοιμάζουν την απάντησή σου αν η Apple απορρίψει. Για ανθρώπινη ματιά, [κλείσε μία ώρα μαζί μου](https://devoria.fr/el/coaching): διαβάζουμε μαζί το μήνυμα και κοιτάμε την οθόνη σύνδεσής σου. Η πλήρης διαδικασία μετά από απόρριψη είναι στη σελίδα [εφαρμογή που απορρίφθηκε από την Apple](https://devoria.fr/el/expertise/app-rejected-by-apple).

Αν ετοιμάζεις την πρώτη σου κυκλοφορία, [κάνε τη δωρεάν διάγνωση](https://devoria.fr/el/diagnostic): σου λέει με ποιο βήμα να ξεκινήσεις και σου στέλνει τη check-list μου κατά των απορρίψεων της Apple.

Κανείς δεν μπορεί να εγγυηθεί ότι η Apple θα δεχτεί την app σου. Αν προσθέσεις τη σύνδεση Apple στο σωστό σημείο, τουλάχιστον αυτός ο λόγος βγαίνει από τη λίστα.

## Συχνές ερωτήσεις

### Είναι υποχρεωτική η σύνδεση με Apple στο iOS;

Όχι, όχι σε κάθε περίπτωση. Απαιτείται μόνο αν η app σου προσφέρει σύνδεση τρίτου, όπως Google ή Facebook, για τη δημιουργία του κύριου λογαριασμού. Από τον Ιανουάριο του 2024, μια άλλη ισοδύναμη υπηρεσία μπορεί να την αντικαταστήσει, αλλά η Apple αναφέρει μόνο τη σύνδεση Apple ως συμβατή.

### Τι σημαίνει «Guideline 4.8 - Design - Login Services»;

Είναι ο τίτλος της απόρριψης στο μήνυμα της Apple. Σημαίνει ότι η app σου προσφέρει σύνδεση τρίτου χωρίς ισοδύναμη επιλογή που περιορίζει τα δεδομένα στο όνομα και το e-mail, επιτρέπει την απόκρυψη του e-mail και δεν χρησιμοποιείται για διαφημίσεις χωρίς άδεια.

### Αρκεί η εγγραφή με e-mail δίπλα στο Google;

Δεν είναι εγγυημένο. Το κείμενο ζητά υπηρεσία που επιτρέπει να κρατήσεις το e-mail σου ιδιωτικό, ενώ μια κλασική φόρμα το ζητά. Η Apple δεν έχει δημοσιεύσει θέση για αυτή την περίπτωση, και το μήνυμα απόρριψής της αναφέρει μόνο τη σύνδεση Apple. Εγώ δεν θα έπαιρνα αυτό το ρίσκο.

### Πρέπει να προσφέρω σύνδεση Apple στο Android;

Όχι. Η 4.8 είναι κανόνας του App Store, και το module του Expo λειτουργεί μόνο σε iOS. Στο Android, το `isAvailableAsync()` επιστρέφει false: το κουμπί Apple δεν εμφανίζεται, και το Google μπορεί να μείνει μόνο του.

### Χρειάζεται νέο build μετά από απόρριψη 4.8;

Ναι, στις περισσότερες περιπτώσεις. Η σύνδεση Apple χρειάζεται native capability, που ενεργοποιείται τη στιγμή του build. Μια απομακρυσμένη ενημέρωση δεν μπορεί να την προσθέσει. Μόνη εξαίρεση: η app σου είχε ήδη συμβατή επιλογή, και αρκεί να το εξηγήσεις στην Apple στην απάντησή σου.


## Το project σου

[Apple Review Kit](https://devoria.fr/el/kits/app-review): Η checklist μου για το App Store review, οι απορρίψεις από την Apple διορθωμένες, σημειώσεις για τον reviewer και δύο skills Claude Code για την app σου. 29 €.

[iOS Kit](https://devoria.fr/el/kits/ios): Φτιάξε την iPhone app σου με το Claude Code: ο αρχικός μου κώδικας, skills που ελέγχουν τη δουλειά του και τα kits Apple Review, Screenshots και ASO. 129,99 €.
