# Κλειδί API App Store Connect (.p8): δημιουργία και χρήση

> Το κλειδί API του App Store Connect (.p8) κατεβαίνει μόνο μία φορά. Ρόλος, Issuer ID, Key ID, ανάκληση και χρήση με Expo, fastlane ή δικό σου script.

Αρχική σελίδα: [Κλειδί API App Store Connect (.p8): δημιουργία και χρήση](https://devoria.fr/el/blog/app-store-connect-api-key-p8)
Συγγραφέας: [Mehdi Azizi](https://devoria.fr/el/mehdi-azizi)
Δημοσίευση: 2026-11-04
Τελευταία αναθεώρηση περιεχομένου: 2026-11-04


Ένα κλειδί API του App Store Connect επιτρέπει σε ένα εργαλείο, όπως το EAS, το fastlane, το RevenueCat ή ένα δικό σου script, να ενεργεί στον λογαριασμό σου χωρίς τον κωδικό σου και χωρίς τον έλεγχο ταυτότητας δύο παραγόντων. **Η Apple κρατά το δημόσιο μισό του κλειδιού και εσύ κατεβάζεις το ιδιωτικό μισό, ένα αρχείο `.p8`, μόνο μία φορά.** Με αυτό το αρχείο, το Issuer ID και το Key ID, υπογράφεις tokens που ισχύουν το πολύ 20 λεπτά για τα περισσότερα αιτήματα.

Δημοσιεύω τις iOS εφαρμογές μου, ανάμεσά τους το TradaZen και το Nolera, με Expo. Ένα κλειδί ομάδας με ρόλο App Manager εξυπηρετεί το RevenueCat, τα builds μου στο Expo κι ένα εργαλείο γραμμής εντολών που επεξεργάζεται τις σελίδες των εφαρμογών μου. Αυτός ο οδηγός βασίζεται στις σελίδες της Apple, του Expo και του fastlane, όπως τις ξαναδιάβασα στις 3 Νοεμβρίου 2026. Μην το μπερδέψεις με τα κλειδιά υπηρεσιών που μπαίνουν μέσα στον κώδικα μιας εφαρμογής: αυτά τα εξηγώ στο [μυστικό κλειδί API σε εφαρμογή Expo](https://devoria.fr/el/blog/secret-api-key-expo-app-what-to-protect).

## Τι κάνει ένα κλειδί API του App Store Connect

Σύμφωνα με [την τεκμηρίωση της Apple](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api), το API του App Store Connect απαιτεί ένα token JWT για κάθε αίτημα. Το δημιουργείς και το υπογράφεις με το ιδιωτικό σου κλειδί. Το κλειδί χρησιμεύει μόνο για αυτό το API: δεν μπορείς να το χρησιμοποιήσεις για άλλες υπηρεσίες της Apple.

Η αξία του χωράει σε μία πρόταση: **κανένας άνθρωπος δεν χρειάζεται να εγκρίνει τη σύνδεση.** Το Apple ID σου σκοντάφτει στον έλεγχο ταυτότητας δύο παραγόντων, κι αυτό μπλοκάρει κάθε αυτοματοποίηση. Ο οδηγός [EAS Submit για iOS](https://devoria.fr/el/blog/eas-submit-ios-publish-expo-app-store) δείχνει τι αλλάζει αυτό στην αποστολή μιας εφαρμογής Expo.

## Πρώτα απ' όλα: ζήτα πρόσβαση στο API

Το πρώτο κλειδί δεν δημιουργείται αμέσως. [Η βοήθεια του App Store Connect](https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-api) είναι σαφής: **ο Account Holder πρέπει πρώτα να ζητήσει πρόσβαση στο API.** Ανοίγει το Users and Access, πατά Integrations και μετά Request Access. Η Apple εξετάζει κάθε αίτημα ξεχωριστά.

Ο Account Holder είναι το άτομο που έγραψε τον λογαριασμό. Αν είσαι αρχάριος, είσαι εσύ: ο οδηγός [λογαριασμός developer της Apple](https://devoria.fr/el/blog/apple-developer-account-price-free-or-99) εξηγεί την εγγραφή.

## Κλειδί ομάδας ή ατομικό κλειδί

Η Apple προσφέρει δύο τύπους κλειδιών. Αυτές είναι οι διαφορές τους, όπως τις κατέγραψα από [την τεκμηρίωση](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api) και [τη βοήθεια του App Store Connect](https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-api):

| Κριτήριο                         | Κλειδί ομάδας            | Ατομικό κλειδί       |
| -------------------------------- | ------------------------ | -------------------- |
| Ποιος μπορεί να το δημιουργήσει  | Account Holder ή Admin   | Σχεδόν κάθε χρήστης  |
| Προσβάσιμες εφαρμογές            | Όλες, χωρίς εξαίρεση     | Αυτές του χρήστη     |
| Δικαιώματα                       | Ο ρόλος που επιλέγεις    | Αυτά του χρήστη      |
| Αριθμός κλειδιών                 | Πολλά                    | Ένα ενεργό ανά άτομο |
| Πιστοποιητικά και profiles       | Ναι, ανάλογα με τον ρόλο | Όχι                  |
| Πωλήσεις, οικονομικά, notaryTool | Ανάλογα με τον ρόλο      | Όχι                  |
| Πεδίο του token                  | `iss` = Issuer ID        | `sub` = `user`       |

Το «σχεδόν κάθε χρήστης» σημαίνει, κατά την Apple: Account Holder, Admin, App Manager, Customer Support, Developer και Marketing, εκτός αν ένας Admin ή ο Account Holder τους έχει αφαιρέσει το δικαίωμα να δημιουργούν ατομικό κλειδί.

**Για Expo ή fastlane, διάλεξε κλειδί ομάδας.** Ένα ατομικό κλειδί δεν έχει πρόσβαση στα endpoints του provisioning, αυτά που δημιουργούν πιστοποιητικά και profiles. [Η τεκμηρίωση του fastlane](https://docs.fastlane.tools/app-store-connect-api/) το επιβεβαιώνει: τα κλειδιά ομάδας απαιτούνται για κάθε πρόσβαση που σχετίζεται με provisioning.

## Ποιον ρόλο να δώσεις στο κλειδί σου

Ένα κλειδί ομάδας έχει πρόσβαση σε όλες τις εφαρμογές του λογαριασμού, όποιος κι αν είναι ο ρόλος του. Ο ρόλος καθορίζει τι μπορεί να κάνει. **Η Apple προειδοποιεί ότι ένα κλειδί Admin μπορεί να δημιουργεί και να διαγράφει χρήστες**: δώσε τον μικρότερο ρόλο που καλύπτει τη χρήση σου. Τα δικαιώματα παρακάτω προέρχονται από τον [πίνακα ρόλων της Apple](https://developer.apple.com/help/account/access/roles/).

| Χρήση του κλειδιού                        | Ρόλοι που το επιτρέπουν       |
| ----------------------------------------- | ----------------------------- |
| Αποστολή builds                           | Admin, App Manager, Developer |
| Διαχείριση builds στο TestFlight          | Admin, App Manager            |
| Δημιουργία πιστοποιητικών και profiles    | Admin, App Manager            |
| Υποβολή εφαρμογής για έλεγχο              | Admin, App Manager            |
| Εισαγωγή προϊόντων και τιμών (RevenueCat) | Τουλάχιστον App Manager       |
| Δημιουργία άλλων κλειδιών ομάδας          | Admin                         |

Η γραμμή για το RevenueCat προέρχεται από [την τεκμηρίωσή του](https://www.revenuecat.com/docs/service-credentials/itunesconnect-app-specific-shared-secret/app-store-connect-api-key-configuration). Ο οδηγός του Expo, από την πλευρά του, [δίνει ρόλο Admin](https://github.com/expo/fyi/blob/main/creating-asc-api-key.md) στο κλειδί. Στις εφαρμογές μου, ο ρόλος App Manager αρκεί: το EAS δημιουργεί με αυτόν τα distribution profiles και το RevenueCat εισάγει τα προϊόντα.

Μόλις δημιουργηθεί το κλειδί, [δεν μπορείς πια να αλλάξεις ούτε το όνομα ούτε τον ρόλο του](https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-api). Για να αλλάξεις κάτι, πρέπει να το ανακαλέσεις και να δημιουργήσεις άλλο.

## Δημιουργία κλειδιού ομάδας, βήμα βήμα

Χρειάζεσαι λογαριασμό Admin ή Account Holder. Σύμφωνα με [την Apple](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api):

1. **Άνοιξε το Users and Access** και μετά την καρτέλα Integrations.
2. **Διάλεξε App Store Connect API** στην αριστερή στήλη και μετά την καρτέλα Team Keys.
3. **Πάτα Generate API Key** ή το κουμπί +.
4. **Δώσε όνομα στο κλειδί.** Χρησιμεύει μόνο σε σένα, δεν είναι μέρος του κλειδιού. Ονόμασέ το με βάση το εργαλείο που θα το χρησιμοποιεί.
5. **Διάλεξε τον ρόλο** κάτω από το Access και πάτα Generate.
6. **Κατέβασε το ιδιωτικό κλειδί** με τον σύνδεσμο Download API Key.

> Ο σύνδεσμος λήψης εξαφανίζεται μόλις κατεβάσεις το αρχείο, και η Apple δεν κρατά κανένα αντίγραφο. Φύλαξε το `.p8` πριν κλείσεις τη σελίδα.

Μετά σημείωσε τα δύο αναγνωριστικά. Σύμφωνα με [τη σελίδα της Apple για τα tokens](https://developer.apple.com/documentation/appstoreconnectapi/generating-tokens-for-api-requests), **το Issuer ID εμφανίζεται στο πάνω μέρος της σελίδας Integrations**, με ένα κουμπί Copy. Το Key ID εμφανίζεται στη λίστα των ενεργών κλειδιών: πέρνα τον κέρσορα από πάνω του για να εμφανιστεί το Copy Key ID. Το Issuer ID είναι ίδιο για όλα τα κλειδιά ομάδας του λογαριασμού. Το Key ID είναι μοναδικό για κάθε κλειδί.

Για ατομικό κλειδί η διαδικασία είναι πιο σύντομη: άνοιξε το προφίλ χρήστη σου, κατέβα στο Individual API Key και πάτα Generate API Key. Κι εδώ η λήψη γίνεται μόνο μία φορά.

## Πού να φυλάξεις το αρχείο .p8

Η Apple ζητά να αντιμετωπίζεις το κλειδί σαν κωδικό πρόσβασης: **μην το μοιράζεσαι, μην το βάζεις σε αποθετήριο κώδικα, μην το ενσωματώνεις ποτέ στον κώδικα μιας εφαρμογής.** Η ρουτίνα μου:

- **Ένας φάκελος έξω από το project**, ή ο διαχειριστής μυστικών του εργαλείου continuous integration που χρησιμοποιείς.
- **Ο φάκελος των κλειδιών στο `.gitignore` σου**, αν το αρχείο πρέπει να μείνει στο project για όσο διαρκεί μια αποστολή.
- **Αυστηρά δικαιώματα.** Ένα εργαλείο γραμμής εντολών για το App Store Connect απέρριπτε το `.p8` μου όσο το αρχείο ήταν αναγνώσιμο από άλλους λογαριασμούς. Ένα `chmod 600` έλυσε το πρόβλημα.
- **Ένα κλειδί ανά εργαλείο.** Η Apple επιτρέπει να [δημιουργείς πολλά κλειδιά](https://developer.apple.com/documentation/appstoreconnectapi/creating-api-keys-for-app-store-connect-api), με όποιους ρόλους θέλεις.

Αυτό το τελευταίο δεν το εφάρμοσα στην αρχή. Το κλειδί μου App Manager εξυπηρετεί ταυτόχρονα το RevenueCat, τα builds μου και το εργαλείο για τις σελίδες. Αν χρειαστεί να το ανακαλέσω, πέφτουν τρία εργαλεία μαζί. **Αν το ξανάκανα, θα δημιουργούσα ένα κλειδί ανά εργαλείο**, για να μπορώ να κόψω ένα χωρίς να αγγίξω τα άλλα.

## Χρήση με Expo

Τρεις τρόποι να δώσεις το κλειδί στο EAS:

- **Άφησέ το στη διαχείριση του EAS.** Το `eas credentials --platform ios` μπορεί να δημιουργήσει ένα κλειδί και να το κρατήσει στους servers του Expo. Είναι ο πιο απλός δρόμος.
- **Δήλωσέ το στο `eas.json`.** Το profile `submit` δέχεται τα `ascApiKeyPath`, `ascApiKeyIssuerId` και `ascApiKeyId`. Σύμφωνα με [την αναφορά του eas.json](https://docs.expo.dev/eas/json/), αυτά τα πεδία δέχονται μεταβλητές περιβάλλοντος, όπως το `$ASC_API_KEY_PATH`.
- **Πέρασέ το μέσω του περιβάλλοντος.** [Το αποθετήριο του EAS CLI](https://github.com/expo/eas-cli/blob/main/packages/eas-cli/README.md) τεκμηριώνει τα `EXPO_ASC_API_KEY_PATH`, `EXPO_ASC_KEY_ID` και `EXPO_ASC_ISSUER_ID`. Για ατομικό κλειδί, παραλείπεις το Issuer ID.

Ένας περιορισμός που πρέπει να ξέρεις για τα builds: [το Expo διευκρινίζει](https://docs.expo.dev/build-reference/ios-capabilities/) ότι το επίσημο API δεν μπορεί να συνδέσει ένα App Group, ένα Merchant ID ή ένα CloudKit container. Τότε χρειάζεσαι σύνδεση με το Apple ID σου, τοπικά. Το έζησα στο Nolera με το app group του widget του: το κλειδί ενεργοποιούσε τη δυνατότητα, αλλά δεν συνέδεε το group. Τη σύνδεση την έκανα στο developer portal της Apple. **Αν ο συγχρονισμός των capabilities κολλήσει, το `EXPO_NO_CAPABILITY_SYNC=1` τον απενεργοποιεί**, κι εσύ ενεργοποιείς τη δυνατότητα μόνος σου στο αναγνωριστικό της εφαρμογής. Η υπογραφή των builds εξηγείται αναλυτικά στο [πιστοποιητικό και provisioning profile iOS](https://devoria.fr/el/blog/ios-certificate-provisioning-profile-expo).

## Χρήση με fastlane

Το [fastlane](https://docs.fastlane.tools/app-store-connect-api/) διαβάζει το κλειδί από ένα αρχείο JSON. Τα πεδία `key_id`, `issuer_id` και `key`, δηλαδή το περιεχόμενο του `.p8`, είναι υποχρεωτικά. Τα `duration` και `in_house` είναι προαιρετικά. Εικονικές τιμές:

```json
{
  "key_id": "XXXXXXXXXX",
  "issuer_id": "your-issuer-id",
  "key": "-----BEGIN PRIVATE KEY-----\nMIGT...\n-----END PRIVATE KEY-----",
  "duration": 1200,
  "in_house": false
}
```

Μετά περνάς αυτό το αρχείο σε ένα action, για παράδειγμα `fastlane pilot distribute --api_key_path fastlane/cle.json`. Σε ένα Fastfile, το action `app_store_connect_api_key` δέχεται τα `key_id`, `issuer_id` και `key_filepath`. Η διάρκεια της συνεδρίας δεν ξεπερνά τα 1.200 δευτερόλεπτα, δηλαδή 20 λεπτά. Δεν υποστηρίζουν όλα τα actions το κλειδί: το fastlane αναφέρει, για παράδειγμα, ότι τα `produce` και `pem` δεν λειτουργούν με κλειδί API.

## Χρήση στο δικό σου script

Χωρίς εργαλείο, φτιάχνεις το token μόνος σου. [Η Apple ορίζει τη συνταγή](https://developer.apple.com/documentation/appstoreconnectapi/generating-tokens-for-api-requests):

- **Header**: το `alg` είναι `ES256`, το `kid` είναι το Key ID σου, το `typ` είναι `JWT`.
- **Payload, κλειδί ομάδας**: `iss`, το Issuer ID σου· `iat`, η ώρα δημιουργίας· `exp`, η ώρα λήξης· `aud`, που είναι `appstoreconnect-v1`.
- **Payload, ατομικό κλειδί**: `sub` με τιμή `user` στη θέση του `iss`.
- **Διάρκεια**: πάνω από 20 λεπτά, η Apple απορρίπτει το token για τα περισσότερα αιτήματα.

Σε Python, με τη βιβλιοθήκη PyJWT και την κρυπτογραφική της εξάρτηση, που εγκαθίσταται με `pip install pyjwt[crypto]` σύμφωνα με [την τεκμηρίωσή της](https://pyjwt.readthedocs.io/en/stable/installation.html). Στο τερματικό του Mac, βάλε εισαγωγικά: `pip install "pyjwt[crypto]"`, αλλιώς το zsh αρνείται τις αγκύλες.

```python
import time
import jwt

KEY_ID = "XXXXXXXXXX"
ISSUER_ID = "your-issuer-id"

with open("AuthKey_XXXXXXXXXX.p8") as f:
    private_key = f.read()

now = int(time.time())
token = jwt.encode(
    {"iss": ISSUER_ID, "iat": now, "exp": now + 20 * 60, "aud": "appstoreconnect-v1"},
    private_key,
    algorithm="ES256",
    headers={"kid": KEY_ID, "typ": "JWT"},
)
print(token)
```

Μετά το στέλνεις στο header `Authorization`, όπως στο παράδειγμα της Apple:

```bash
curl -H "Authorization: Bearer $TOKEN" "https://api.appstoreconnect.apple.com/v1/apps"
```

Έτρεξα αυτό το script στις 3 Νοεμβρίου 2026 με ένα κλειδί μιας χρήσης που δημιούργησα στον υπολογιστή μου: το header και το payload του token αντιστοιχούν στη σελίδα της Apple, και η υπογραφή ES256 επαληθεύεται. Δεν το έστειλα στο API της Apple με αυτό το δοκιμαστικό κλειδί, που δεν υπάρχει στην Apple. **Ξαναχρησιμοποίησε το ίδιο token όσο ισχύει**: η Apple το συνιστά για καλύτερες επιδόσεις.

## Ανάκληση κλειδιού

Ανακάλεσε ένα κλειδί μόλις χαθεί, παραβιαστεί ή πάψει να το χρησιμοποιεί κάποιο εργαλείο. Σύμφωνα με [τη βοήθεια του App Store Connect](https://developer.apple.com/help/app-store-connect/get-started/app-store-connect-api), με λογαριασμό Account Holder ή Admin:

1. Άνοιξε το Users and Access και μετά το Integrations.
2. Διάλεξε Team Keys ή Individual Keys και πάτα Edit.
3. Τσέκαρε τα κλειδιά που θέλεις να ανακαλέσεις και πάτα Revoke Key.
4. Επιβεβαίωσε με Revoke.

**Ένα κλειδί που ανακλήθηκε δεν ενεργοποιείται ποτέ ξανά.** [Η Apple το εμφανίζει](https://developer.apple.com/documentation/appstoreconnectapi/revoking-api-keys) για 30 ημέρες στο Revoked. Κάθε εργαλείο που το χρησιμοποιούσε αποτυγχάνει τότε στον έλεγχο ταυτότητας. Με το Expo, το μήνυμα είναι «[App Store Connect rejected the API authentication credentials](https://github.com/expo/eas-cli/blob/main/packages/build-tools/src/steps/utils/ios/AscApiClient.ts)». Αυτό το μήνυμα και οι άλλες αποτυχίες αποστολής εξηγούνται στα [σφάλματα αποστολής με EAS και η διόρθωσή τους](https://devoria.fr/el/blog/eas-submit-ios-errors-fix). Αν το κλειδί δεν έχει παραβιαστεί, ετοίμασε το καινούργιο πριν κόψεις το παλιό. Αν έχει παραβιαστεί, η Apple ζητά να το ανακαλέσεις αμέσως.

Για το δικό σου ατομικό κλειδί: το προφίλ σου, Individual API Key και μετά Revoke.

## Η check-list μου για το κλειδί .p8

- Ο Account Holder έχει ζητήσει πρόσβαση στο API.
- Το κλειδί είναι κλειδί ομάδας, αν χρησιμεύει για builds ή profiles.
- Ο ρόλος του είναι ο μικρότερος που καλύπτει τη χρήση, και το όνομά του λέει ποιο εργαλείο το χρησιμοποιεί.
- Το `.p8` είναι φυλαγμένο έξω από το αποθετήριο, με αυστηρά δικαιώματα και ένα κρυπτογραφημένο αντίγραφο ασφαλείας.
- Το Issuer ID και το Key ID είναι σημειωμένα ξεχωριστά, χωρίς το αρχείο.
- Κάθε εργαλείο έχει το δικό του κλειδί, ώστε να μπορείς να ανακαλέσεις μόνο ένα.

## Αυτοματοποίησε τη δημοσίευση χωρίς να εκθέσεις το κλειδί σου

Το κλειδί είναι μόνο ένα κομμάτι της διαδρομής. Το [iOS & Android Kit](https://devoria.fr/el/kits/ios) ξεκινά από τον κώδικα βάσης των εφαρμογών μου, μαζί με τις συνδρομές, και ακολουθεί τέσσερα βήματα μέχρι το App Store, με τον δικό σου ρυθμό. Αν συνδέσεις το RevenueCat με αυτό το κλειδί, όλη η εγκατάσταση υπάρχει στο [RevenueCat και συνδρομή in-app σε iOS](https://devoria.fr/el/blog/revenuecat-syndromi-in-app-ios).

Αν ετοιμάζεις την πρώτη σου κυκλοφορία, [κάνε τη δωρεάν διάγνωση](https://devoria.fr/el/diagnostic): σου λέει τι σε μπλοκάρει πραγματικά και σου στέλνει τη check-list μου κατά των απορρίψεων της Apple. Η σελίδα [δημοσίευση εφαρμογής στο App Store](https://devoria.fr/el/expertise/publish-an-app-on-the-app-store) καλύπτει κάθε βήμα, από τη σελίδα της εφαρμογής μέχρι την έγκριση.

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

### Πώς δημιουργώ κλειδί API του App Store Connect;

Ο Account Holder ζητά πρώτα πρόσβαση στο API. Μετά, ένας Admin ανοίγει το Users and Access, καρτέλα Integrations, App Store Connect API, Team Keys. Πατά Generate API Key, επιλέγει όνομα και ρόλο, δημιουργεί το κλειδί και κατεβάζει το αρχείο `.p8`.

### Μπορώ να ξανακατεβάσω ένα κλειδί .p8 που έχασα;

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

### Πού βρίσκω το Issuer ID και το Key ID;

Στο App Store Connect, μενού Users and Access, καρτέλα Integrations. Το Issuer ID εμφανίζεται στο πάνω μέρος της σελίδας. Το Key ID βρίσκεται στη λίστα των ενεργών κλειδιών. Ένα ατομικό κλειδί δεν χρησιμοποιεί Issuer ID.

### Ποιον ρόλο να δώσω σε κλειδί που χρησιμοποιεί το Expo;

Ο οδηγός του Expo δίνει ρόλο Admin. Σύμφωνα με τον πίνακα ρόλων της Apple, ο App Manager αρκεί για αποστολή builds και δημιουργία πιστοποιητικών και profiles. Αυτός είναι ο ρόλος του κλειδιού μου, που χρησιμοποιώ για τα builds μου στο Expo.

### Μπορώ να αλλάξω τον ρόλο ενός κλειδιού API;

Όχι. Η Apple δεν επιτρέπει να αλλάξεις ούτε το όνομα ούτε τον ρόλο ενός κλειδιού μετά τη δημιουργία του. Ανακάλεσέ το και δημιούργησε καινούργιο με τον σωστό ρόλο.

### Λήγει ένα κλειδί API του App Store Connect;

Οι σελίδες της Apple δεν αναφέρουν καμία λήξη του κλειδιού, μόνο την ανάκλησή του. Αυτά που λήγουν είναι τα tokens που υπογράφονται με αυτό, το πολύ μετά από 20 λεπτά για τα περισσότερα αιτήματα.


## Το project σου

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

[iOS & Android Kit](https://devoria.fr/el/kits/ios): Φτιάξε την εφαρμογή σου για iPhone και Android με το Claude Code: ο αρχικός κώδικας των εφαρμογών μου, η διαδρομή μέχρι τα stores και όλα τα kits. 99 €.

[Διάγνωση: τι σε χωρίζει από την iPhone εφαρμογή σου](https://devoria.fr/el/diagnostic): 7 ερωτήσεις, 60 δευτερόλεπτα: μαθαίνεις τι πραγματικά σε μπλοκάρει για να δημοσιεύσεις την iPhone εφαρμογή σου, τη διαδρομή σου σε 4 βήματα και το kit που σου ταιριάζει.
