ప్రోహోస్టర్ > బ్లాగ్ > పరిపాలన > iOS అప్లికేషన్లను రూపొందించడం మరియు పంపిణీ చేయడం యొక్క లక్షణాలు
iOS అప్లికేషన్లను రూపొందించడం మరియు పంపిణీ చేయడం యొక్క లక్షణాలు
ఈ కథనంలో, CI/CDని డీబగ్గింగ్ చేసే ప్రక్రియలో ప్లారియం క్రాస్నోడార్ స్టూడియో సేకరించిన iOS అప్లికేషన్లను అసెంబ్లింగ్ చేయడం మరియు వినియోగదారులకు పంపిణీ చేయడం వంటి అనుభవాన్ని మేము పంచుకుంటాము.
శిక్షణ
Apple పరికరాల కోసం అప్లికేషన్ల అభివృద్ధిలో ఒక విధంగా లేదా మరొక విధంగా పాల్గొన్న ప్రతి వ్యక్తి ఇప్పటికే మౌలిక సదుపాయాల యొక్క వివాదాస్పద సౌలభ్యాన్ని ప్రశంసించారు. ప్రతిచోటా ఇబ్బందులు కనిపిస్తాయి: డెవలపర్ ప్రొఫైల్ మెను నుండి డీబగ్ మరియు బిల్డ్ టూల్స్ వరకు.
ఇంటర్నెట్లో “బేసిక్స్” గురించి చాలా కథనాలు ఉన్నాయి, కాబట్టి మేము ప్రధాన విషయాన్ని హైలైట్ చేయడానికి ప్రయత్నిస్తాము. మీ అప్లికేషన్ని విజయవంతంగా రూపొందించడానికి మీరు ఇక్కడ ఏమి కావాలి:
ఉత్పత్తి చేయబడింది డెవలపర్ సర్టిఫికేట్, అప్లికేషన్పై సంతకం చేయడానికి ఇది మరింత ఉపయోగించబడుతుంది;
ప్రత్యేకతతో అప్లికేషన్ను రూపొందించారు ID (బండిల్ ఐడెంటిఫైయర్ యొక్క ప్రాముఖ్యతను గమనించాలి, ఎందుకంటే వైల్డ్కార్డ్ ID ఉపయోగం అప్లికేషన్ యొక్క అనేక ఫంక్షన్లను ఉపయోగించడం అసాధ్యం చేస్తుంది, ఉదాహరణకు: అనుబంధ డొమైన్లు, పుష్ నోటిఫికేషన్లు, Apple సైన్ ఇన్ మరియు ఇతరులు);
ఏదైనా macOS పరికరంలో కీచైన్ ద్వారా డెవలపర్ సర్టిఫికేట్ తప్పనిసరిగా రూపొందించబడాలి. సర్టిఫికేట్ రకం చాలా ముఖ్యమైనది. అప్లికేషన్ ఎన్విరాన్మెంట్ (డెవలప్మెంట్ లేదా డిస్ట్రిబ్యూషన్)పై ఆధారపడి (డెవలప్మెంట్ లేదా డిస్ట్రిబ్యూషన్), అలాగే అప్లికేషన్ సిగ్నేచర్ ప్రొఫైల్ రకం కూడా భిన్నంగా ఉంటుంది.
ప్రొఫైల్స్ యొక్క ప్రధాన రకాలు:
డెవలప్మెంట్ - డెవలప్మెంట్ టీమ్ యొక్క అప్లికేషన్పై సంతకం చేయడానికి ఉద్దేశించబడింది, డెవలప్మెంట్ సర్టిఫికేట్ ఉపయోగించబడుతుంది (రకం పేరు iPhone డెవలపర్: XXXXX);
తాత్కాలిక - QA విభాగం ద్వారా పరీక్ష అప్లికేషన్ మరియు అంతర్గత ధృవీకరణపై సంతకం చేయడానికి ఉద్దేశించబడింది, డెవలపర్ యొక్క పంపిణీ ప్రమాణపత్రం ఉపయోగించబడుతుంది (రకం పేరు iPhone పంపిణీ: XXXX);
యాప్ స్టోర్ - టెస్ట్ఫ్లైట్ ద్వారా బాహ్య పరీక్ష కోసం విడుదల బిల్డ్ మరియు యాప్ స్టోర్కి అప్లోడ్ చేయడం, డెవలపర్ డిస్ట్రిబ్యూషన్ సర్టిఫికెట్ ఉపయోగించబడుతుంది.
డెవలప్మెంట్ మరియు అడ్ హాక్ ప్రొఫైల్లను రూపొందించేటప్పుడు, ఇది కూడా సూచించబడుతుంది పరికర జాబితా, మీరు బిల్డ్ని ఇన్స్టాల్ చేయగలరు, ఇది వినియోగదారులకు యాక్సెస్ని మరింత పరిమితం చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. యాప్ స్టోర్ ప్రొఫైల్లో పరికరాల జాబితా లేదు, ఎందుకంటే క్లోజ్డ్ బీటా టెస్టింగ్ సమయంలో యాక్సెస్ కంట్రోల్ టెస్ట్ఫ్లైట్ ద్వారా నిర్వహించబడుతుంది, ఇది తర్వాత చర్చించబడుతుంది.
స్పష్టత కోసం, మీరు డెవలపర్ ప్రొఫైల్ను దిగువ పట్టిక రూపంలో ప్రదర్శించవచ్చు. ఇది అసెంబ్లీ కోసం మనకు ఏ పారామితులను అవసరమో మరియు వాటిని ఎక్కడ నుండి పొందాలో అర్థం చేసుకోవడం సులభం చేస్తుంది.
అసెంబ్లీ
ప్రాజెక్ట్ మరియు పర్యావరణం ద్వారా అసెంబ్లీలను వేరు చేయడాన్ని సులభతరం చేయడానికి, మేము వంటి ప్రొఫైల్ పేర్లను ఉపయోగిస్తాము ${ProjectName}_${Instance}, అంటే, ప్రాజెక్ట్ పేరు + ఉదాహరణ (అప్లికేషన్ వాతావరణంపై ఆధారపడి ఉంటుంది: Dev, QA, GD, స్టేజింగ్, లైవ్ మరియు మొదలైనవి).
బిల్డ్ సర్వర్కి దిగుమతి అయినప్పుడు, ప్రొఫైల్ దాని పేరును ప్రత్యేక IDకి మారుస్తుంది మరియు ఫోల్డర్కు తరలించబడుతుంది /Users/$Username/Library/MobileDevice/Provisioning Profiles (ఎక్కడ $Username బిల్డ్ సర్వర్ యొక్క వినియోగదారు ఖాతా పేరుకు అనుగుణంగా ఉంటుంది).
*.ipa ఫైల్ను రూపొందించడానికి రెండు మార్గాలు ఉన్నాయి - లెగసీ (ప్యాకేజీఅప్లికేషన్) మరియు ఆధునిక (XcAchive సృష్టి మరియు ఎగుమతి ద్వారా). వెర్షన్ 8.3 నుండి యాప్ ఫైల్ ప్యాకేజింగ్ మాడ్యూల్ Xcode పంపిణీ నుండి తీసివేయబడినందున మొదటి పద్ధతి వాడుకలో లేనిదిగా పరిగణించబడుతుంది. దీన్ని ఉపయోగించడానికి, మీరు మాడ్యూల్ను పాత Xcode (వెర్షన్ 8.2 మరియు అంతకు ముందు) నుండి ఫోల్డర్కి కాపీ చేయాలి: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
అయితే, ఈ పద్ధతి Apple యొక్క కోణం నుండి వాడుకలో లేనిదిగా పరిగణించబడుతుంది. అప్లికేషన్ ఆర్కైవ్ నుండి ఎగుమతి చేయడం ద్వారా *.ipa పొందడం సంబంధితంగా ఉంటుంది.
$Method — డెలివరీ పద్ధతి, అప్లికేషన్ సిగ్నేచర్ ప్రొఫైల్ రకానికి అనుగుణంగా ఉంటుంది, అంటే డెవలప్మెంట్ కోసం విలువ డెవలప్మెంట్ అవుతుంది, అడ్ హాక్ - అడ్-హాక్ మరియు యాప్ స్టోర్ - యాప్-స్టోర్ కోసం.
$BundleID — అప్లికేషన్ ID, ఇది అప్లికేషన్ సెట్టింగ్లలో పేర్కొనబడింది. మీరు ఆదేశంతో తనిఖీ చేయవచ్చు:
defaults read $ProjectDir/Info CFBundleIdentifier
$DevAccName и $ProfileId - డెవలపర్ పేరు మరియు సంతకం ప్రొఫైల్ ID సెట్టింగ్లు గతంలో ఉపయోగించబడ్డాయి మరియు ఎగుమతి సెట్టింగ్లలోని విలువలతో సరిపోలాలి.
$TeamID — డెవలపర్ పేరు తర్వాత బ్రాకెట్లలో పది అంకెల ID, ఉదాహరణకు: iPhone డెవలపర్: …… (XXXXXXXXXX); కీచైన్లో తనిఖీ చేయవచ్చు.
తరువాత, ఎగుమతి ఆదేశాన్ని ఉపయోగించి, మేము అవసరమైన *.ipa ఫైల్ను పొందుతాము:
ఇప్పుడు సేకరించిన ఫైల్ తుది వినియోగదారుకు డెలివరీ చేయబడాలి, అంటే పరికరంలో ఇన్స్టాల్ చేయబడింది.
HockeyApp, AppBlade మరియు ఇతర వంటి డెవలప్మెంట్ మరియు అడ్ హాక్ బిల్డ్లను పంపిణీ చేయడానికి అనేక సేవలు ఉన్నాయి, అయితే ఈ వ్యాసంలో అప్లికేషన్లను పంపిణీ చేయడానికి స్వతంత్ర సర్వర్ గురించి మాట్లాడుతాము.
iOS కోసం అప్లికేషన్ను ఇన్స్టాల్ చేయడం 2 దశల్లో జరుగుతుంది:
ఐటెమ్ల సర్వీస్ ద్వారా అప్లికేషన్ ఇన్స్టాలేషన్ మానిఫెస్ట్ను స్వీకరించడం.
HTTPS ద్వారా మానిఫెస్ట్లో పేర్కొన్న సమాచారం ప్రకారం *.ipa ఫైల్ యొక్క ఇన్స్టాలేషన్.
ఆ విధంగా, మనం ముందుగా కమాండ్తో ఇన్స్టాలేషన్ మానిఫెస్ట్ (ఫైల్ రకం *.plist)ని రూపొందించాలి:
మీరు చూడగలిగినట్లుగా, మానిఫెస్ట్ అప్లికేషన్ను రూపొందించడంలో పాల్గొన్న దాదాపు అన్ని పారామితులను కలిగి ఉంది.
అప్లికేషన్ వెర్షన్ ($AppVersion) ఆదేశంతో తనిఖీ చేయవచ్చు:
defaults read $ProjectDir/Info CFBundleVersion
పరామితి $ipaUrl *.ipa ఫైల్ను డౌన్లోడ్ చేయడానికి ప్రత్యక్ష లింక్ను కలిగి ఉంది. iOS యొక్క ఏడవ వెర్షన్ నుండి, అప్లికేషన్ తప్పనిసరిగా HTTPS ద్వారా ఇన్స్టాల్ చేయబడాలి. ఎనిమిదవ సంస్కరణలో, మానిఫెస్ట్ యొక్క ఆకృతి కొద్దిగా మార్చబడింది: వంటి అప్లికేషన్ చిహ్నాల కోసం సెట్టింగ్లతో బ్లాక్లు
<images>
<image>...</image>
</images>
అందువల్ల, అప్లికేషన్ను ఇన్స్టాల్ చేయడానికి, ఇలాంటి లింక్తో ఒక సాధారణ HTML పేజీ సరిపోతుంది:
అభివృద్ధి మరియు పరీక్ష విభాగాల అవసరాల కోసం, ప్లారియం దాని స్వంత బిల్డ్ ఇన్స్టాలేషన్ అప్లికేషన్ను సృష్టించింది, ఇది మాకు అందిస్తుంది:
స్వయంప్రతిపత్తి మరియు స్వాతంత్ర్యం,
యాక్సెస్ నియంత్రణ యొక్క కేంద్రీకరణ మరియు "తాత్కాలిక" డైనమిక్గా సృష్టించబడిన లింక్ల ద్వారా అప్లికేషన్ల సురక్షిత ఇన్స్టాలేషన్,
విస్తరించదగిన కార్యాచరణ (అంటే, డెవలప్మెంట్ టీమ్, అవసరమైతే, తప్పిపోయిన ఫంక్షన్లను ఇప్పటికే ఉన్న అప్లికేషన్లో ఏకీకృతం చేయగలదు).
పరీక్ష
ఇప్పుడు మేము ఉపయోగించి అప్లికేషన్ యొక్క ప్రీ-రిలీజ్ టెస్టింగ్ గురించి మాట్లాడుతాము TestFlight.
డౌన్లోడ్ చేయడానికి అవసరమైన షరతులు యాప్ స్టోర్ సంతకం ప్రొఫైల్ రకం మరియు ఉత్పత్తి చేయబడిన API కీల ఉనికి.
అప్లికేషన్ను డౌన్లోడ్ చేయడానికి అనేక మార్గాలు ఉన్నాయి:
Xcode ద్వారా (ఆర్గనైజర్),
ఆల్టూల్ ద్వారా,
Xcode (ఇప్పుడు ట్రాన్స్పోర్టర్) యొక్క పాత వెర్షన్ల కోసం అప్లికేషన్ లోడర్ ద్వారా
ఆటోమేటిక్ డౌన్లోడ్ కోసం, ఆల్టూల్ ఉపయోగించబడుతుంది, దీనికి రెండు అధికార పద్ధతులు కూడా ఉన్నాయి:
యాప్-నిర్దిష్ట పాస్వర్డ్,
API కీ.
API కీని ఉపయోగించి అప్లికేషన్ను డౌన్లోడ్ చేయడం ఉత్తమం.
API కీని పొందడానికి, దీనికి వెళ్లండి లింక్ మరియు ఒక కీని రూపొందించండి. *.p8 ఫార్మాట్లోని కీతో పాటు, మనకు రెండు పారామితులు అవసరం: ఇష్యూరిఐడి మరియు కీఐడి.
తరువాత, డౌన్లోడ్ చేసిన కీని బిల్డ్ సర్వర్కి దిగుమతి చేయండి:
పేరు apiKey и apiIssuer API కీ జనరేషన్ పేజీ నుండి ఫీల్డ్ విలువలను కలిగి ఉంటుంది.
తరువాత, విజయవంతమైన ధ్రువీకరణ తర్వాత, మేము కమాండ్తో అప్లికేషన్ను లోడ్ చేస్తాము --upload-app అదే పారామితులతో.
అప్లికేషన్ ఒకటి లేదా రెండు రోజుల్లో Apple ద్వారా పరీక్షించబడుతుంది మరియు బాహ్య పరీక్షకులకు అందుబాటులోకి వస్తుంది: అవి ఇన్స్టాలేషన్ కోసం ఇమెయిల్ లింక్లు చేయబడతాయి.
ఆల్టూల్ ద్వారా అప్లికేషన్ను డౌన్లోడ్ చేయడానికి మరొక మార్గం యాప్-నిర్దిష్ట పాస్వర్డ్ని ఉపయోగించడం.
యాప్-నిర్దిష్ట పాస్వర్డ్ని పొందడానికి మీరు దీనికి వెళ్లాలి లింక్ మరియు దానిని భద్రతా విభాగంలో రూపొందించండి.
తర్వాత, మీరు ఈ పాస్వర్డ్తో కీచైన్లో బిల్డ్ సర్వర్ రికార్డ్ను సృష్టించాలి. Xcode యొక్క వెర్షన్ 11 నుండి ఇది ఆదేశంతో చేయవచ్చు:
పారామీటర్ విలువగా -p మీరు విలువను తీసుకోవచ్చు $AppPswd గుప్తీకరించని (స్పష్టమైన) రూపంలో.
అయితే, ఇప్పటికే చెప్పినట్లుగా, పనితీరు దృష్ట్యా, ఆల్టూల్ అధికారీకరణ కోసం API కీని ఎంచుకోవడం ఉత్తమం, ఎందుకంటే Xcode యొక్క విభిన్న సంస్కరణలు కొన్ని సమస్యలను కలిగి ఉంటాయి (“చూడవు” కీచైన్, అప్లోడ్ సమయంలో అధికార లోపాలు మొదలైనవి).
నిజానికి, అంతే. యాప్ స్టోర్లో ప్రతి ఒక్కరూ విజయవంతమైన బిల్డ్లు మరియు ఇబ్బంది లేని విడుదలలను పొందాలని నేను కోరుకుంటున్నాను.