Κάποιος εγκαθιστά την έκδοση iPhone ενός πελάτη VPN σε Mac της σειράς M, αυτό ανοίγει, συνδέεται, και η ομάδα αποφασίζει ότι το ζήτημα της πλατφόρμας έχει λυθεί. Δεν έχει λυθεί. Αυτό που εδώ χωρίζει το λυμένο από το απλώς λειτουργικό είναι η διαφορά ανάμεσα σε επέκταση εφαρμογής μέσα σε συνεδρία χρήστη και σε επέκταση συστήματος με καθολικό περιβάλλον. Η Apple υποστηρίζει πράγματι παρόχους τούνελ πακέτων στο μοντέλο εφαρμογές iOS σε Mac και καταγράφει αυτή τη διάταξη χωριστά από το εγγενές macOS και το Mac Catalyst. Το νόημα αυτής της υποστήριξης είναι στενότερο απ’ ό,τι ακούγεται. Λέει ότι η διάταξη επιτρέπεται, όχι ότι μια δεδομένη εφαρμογή την κάνει καλά, ούτε ότι το τούνελ καλύπτει όσα υποθέτετε.

Τρεις διατάξεις, ένας πίνακας

Τρεις διατάξεις μετρούν σε ένα Mac και δεν είναι εναλλάξιμες. Ένας εγγενής πελάτης macOS παρέχει επέκταση συστήματος, η οποία τρέχει σε καθολικό περιβάλλον και μπορεί να υπάρχει πριν συνδεθεί κανείς. Μια εφαρμογή iPhone σε Apple Silicon παρέχει επέκταση εφαρμογής, η οποία τρέχει μέσα στη συνεδρία του χρήστη και τελειώνει μαζί της. Το Mac Catalyst ανήκει στην ίδια οικογένεια πακεταρίσματος με την έκδοση τηλεφώνου, αλλά είναι διαφορετικός στόχος με δική του γραμμή ανάπτυξης.

Η παρακάτω σύγκριση είναι το κομμάτι των οδηγιών ανάπτυξης της Apple που αξίζει να θυμάστε, γιατί απαντά στις περισσότερες ερωτήσεις σχεδιασμού πριν από κλήση σε προμηθευτή.

ArrangementProvider packagingSession contextTypical distribution
iOS app on Apple SiliconApp extensionUser session onlyMac App Store
Native macOS clientSystem extensionGlobal, pre-login possibleDeveloper ID, notarised
Mac CatalystApp extensionUser session onlyMac App Store

Διαβάστε τη στήλη πακεταρίσματος πριν από τη σελίδα μάρκετινγκ: προβλέπει τι συμβαίνει κατά την αποσύνδεση πολύ πιο αξιόπιστα από οποιαδήποτε λίστα χαρακτηριστικών.

Τι αποδεικνύει ένα επιτυχές αίτημα

Η γραμμή εφαρμογές iOS σε Mac είναι πραγματική υποστηριζόμενη διάταξη και όχι τρικ προσομοιωτή, γι’ αυτό το ερώτημα επανέρχεται. Κληρονομεί επίσης τη διανομή μέσω Mac App Store, οπότε μια εφαρμογή της οποίας ο εκδότης δεν ενεργοποίησε ποτέ διαθεσιμότητα για Mac δεν θα εμφανιστεί, όσο επιτρεπτική κι αν είναι η τεκμηρίωση για προγραμματιστές.

Μια λειτουργική σύνδεση αποδεικνύει ότι ένα αίτημα από μία εφαρμογή έφτασε στον προορισμό του. Δεν καταγράφει τον resolver του φυλλομετρητή, τις εφαρμογές που εξαιρέθηκαν, τη δεύτερη οικογένεια διευθύνσεων ή τις τοπικές συσκευές στις οποίες ο χρήστης εξακολουθεί να περιμένει πρόσβαση. Ένα τούνελ πακέτων μεταφέρει ό,τι λένε οι διαδρομές και το εύρος του, και αυτό το εύρος προέρχεται από τη διαμόρφωση της εφαρμογής, όχι από την ύπαρξη του τούνελ.

Το κενό είναι συνήθως η κάλυψη ανά εφαρμογή

Ένας πελάτης που δρομολογεί τα πάντα περιγράφεται εύκολα και ελέγχεται εύκολα. Ένας που περιλαμβάνει καθορισμένη λίστα εφαρμογών χρειάζεται αυτοί οι κανόνες να τηρούνται σε αυτή την ανάπτυξη, όχι μόνο στην εγγενή έκδοση Mac. Η πρόσβαση σε τοπικές συσκευές, οι εξαιρέσεις διαχωρισμένου τούνελ και ό,τι εξαρτάται από στοιχείο γραμμής μενού που η έκδοση τηλεφώνου δεν είχε ποτέ σκοντάφτουν στον ίδιο τοίχο.

Ζητήστε το εύρος γραπτώς και μετά δοκιμάστε τη δεύτερη περίπτωση, όχι την πρώτη. Ο καθένας μπορεί να δείξει έναν φυλλομετρητή να φτάνει στο διαδίκτυο μέσα από το τούνελ.

Πού αποκλίνουν οι δύο στη λειτουργία

Η διάρκεια της συνεδρίας είναι η πιο έντονη διαφορά και η λιγότερο ορατή σε μια επίδειξη. Η Apple τεκμηριώνει τις επεκτάσεις εφαρμογών ως εκτελούμενες σε περιβάλλον χρήστη και λήγουσες όταν ο χρήστης αποσυνδεθεί, άρα ένα Mac που επανεκκινεί σε παράθυρο σύνδεσης δεν έχει τούνελ μέχρι να συνδεθεί κάποιος. Αν η απαίτηση καλύπτει μηχάνημα που πρέπει να προστατεύεται πριν από την ταυτοποίηση, η έκδοση τηλεφώνου δεν μπορεί να την ικανοποιήσει, όπως κι αν είναι γραμμένο το προφίλ.

Όλα τα άλλα είναι σχετικά καλλωπιστικά: παρουσία στη γραμμή μενού, πώς εμφανίζεται το DNS, αν επιτρέπεται στην εφαρμογή να κλείσει ενώ το τούνελ μένει ενεργό. Αυτές είναι πραγματικές διαφορές χρηστικότητας και δεν είναι αρχιτεκτονικές αποφάσεις, οπότε κατατάξτε τις μετά το ερώτημα της συνεδρίας.

Αποφασίστε με σταθερή σειρά

Ταξινομήστε τις ερωτήσεις σκόπιμα: κάλυψη χωρίς επίβλεψη πρώτα, εύρος ανά εφαρμογή δεύτερο, διανομή τρίτο, στίλβωση διεπαφής τελευταίο. Μόνο ένας εγγενής πελάτης με επέκταση συστήματος απαντά στο πρώτο, και φτάνει στη συσκευή μέσω MDM και διαχειριζόμενου προφίλ. Μια εφαρμογή iOS σε Apple Silicon είναι λογική απάντηση όταν ένα άτομο κάθεται στη μηχανή, συνδέεται και θέλει το τούνελ για εκείνη τη συνεδρία.

Πριν δεσμευτείτε, κάντε στον εκδότη τρεις συγκεκριμένες ερωτήσεις. Υποστηρίζεται ο πάροχος τούνελ πακέτων στην ανάπτυξη εφαρμογές iOS σε Mac, ισχύουν εκεί κανόνες ανά εφαρμογή και τι συμβαίνει κατά την αποσύνδεση. Ένας προμηθευτής που απαντά και στα τρία σε ένα μήνυμα γνωρίζει την επιφάνεια ανάπτυξής του· όποιος απαντά μόνο στο πρώτο περιγράφει μια εφαρμογή που ανοίγει σε Mac.

Έπειτα επαληθεύστε στο μηχάνημα που θα υποστηρίζετε, με τον λογαριασμό και την πύλη που θα χρησιμοποιήσετε πραγματικά. Μια έκδοση τηλεφώνου που συνδέεται σε πύλη δοκιμής σε έναν φορητό υπολογιστή είναι απόδειξη, όχι ανάπτυξη.

Σχετικά άρθρα