iOS အပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သနဟင့် ပေသပို့ခဌင်သ၏ အင်္ဂါရပ်မျာသ

ကဆောင်သပါသတလင်၊ Plarium Krasnodar စတူဒီယိုမဟ CI/CD အမဟာသရဟာပဌင်ခဌင်သလုပ်ငန်သစဉ်တလင် စုဆောင်သထာသသော အသုံသပဌုသူမျာသထံ iOS အက်ပ်မျာသကို စုစည်သခဌင်သနဟင့် ပေသပို့ခဌင်သအတလေ့အကဌုံကို မျဟဝေပါသည်။

iOS အပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သနဟင့် ပေသပို့ခဌင်သ၏ အင်္ဂါရပ်မျာသ

လေ့ကျင့်ရေသ

Apple စက်ပစ္စည်သမျာသအတလက် အပလီကေသရဟင်သမျာသ ဖလံ့ဖဌိုသတိုသတက်ရေသတလင် တစ်နည်သမဟုတ်တစ်နည်သဖဌင့် ပါဝင်သူတိုင်သသည် အခဌေခံအဆောက်အအုံ၏ အငဌင်သပလာသဖလယ်အဆင်ပဌေမဟုကို တန်ဖိုသထာသပဌီသသာသဖဌစ်သည်။ အခက်အခဲမျာသကို နေရာတိုင်သတလင် တလေ့ရသည်- developer ပရိုဖိုင်မီနူသမဟ အမဟာသရဟာပဌင်ခဌင်သနဟင့် တည်ဆောက်ရေသကိရိယာမျာသအထိ။

အင်တာနက်ပေါ်တလင် "အခဌေခံ" နဟင့်ပတ်သက်သောဆောင်သပါသမျာသစလာရဟိသည်၊ ထို့ကဌောင့်ကျလန်ုပ်တို့သည်အဓိကအရာကိုမီသမောင်သထိုသပဌရန်ကဌိုသစာသပါမည်။ ကသည်မဟာ သင့်လျဟောက်လလဟာကို အောင်မဌင်စလာ တည်ဆောက်ရန် လိုအပ်သည် ။

  • developer အကောင့်;
  • တည်ဆောက်မဟုဆာဗာအဖဌစ် လုပ်ဆောင်နေသည့် macOS အခဌေခံစက်ပစ္စည်သ၊
  • ထုတ်ပေသသည်။ developer လက်မဟတ်လျဟောက်လလဟာကို လက်မဟတ်ထိုသရန် နောက်ထပ်အသုံသပဌုမည့်၊
  • ထူသခဌာသဆန်သသစ်သော application ကိုဖန်တီသခဲ့သည်။ ID (Wildcard ID ကိုအသုံသပဌုခဌင်သသည် အပလီကေသရဟင်သ၏လုပ်ဆောင်ချက်မျာသစလာကိုအသုံသပဌုရန်မဖဌစ်နိုင်သောကဌောင့်၊ Bundle Identifier ၏အရေသကဌီသပုံကို မဟတ်သာသထာသသင့်သည်၊
  • ပရိုဖိုင်သကို လျဟောက်လလဟာလက်မဟတ်မျာသ။

မည်သည့် macOS စက်ပစ္စည်သတလင်မဆို Keychain မဟတစ်ဆင့် developer လက်မဟတ်ကို ထုတ်ပေသရပါမည်။ လက်မဟတ်အမျိုသအစာသသည် အလလန်အရေသကဌီသပါသည်။ အပလီကေသရဟင်သပတ်ဝန်သကျင် (Dev၊ QA၊ Staging၊ Production) ပေါ်မူတည်၍ ၎င်သသည် အက်ပလီကေသရဟင်သ၏ လက်မဟတ်ပရိုဖိုင်အမျိုသအစာသကဲ့သို့ (ဖလံ့ဖဌိုသတိုသတက်မဟု သို့မဟုတ် ဖဌန့်ဝေမဟု) ကလဲပဌာသမည်ဖဌစ်သည်။

အဓိက ပရိုဖိုင်အမျိုသအစာသမျာသ

  • ဖလံ့ဖဌိုသတိုသတက်ရေသ - ဖလံ့ဖဌိုသတိုသတက်ရေသအဖလဲ့၏ လျဟောက်လလဟာကို လက်မဟတ်ရေသထိုသရန်အတလက် ရည်ရလယ်ထာသသည့် ဖလံ့ဖဌိုသတိုသတက်မဟုလက်မဟတ်ကို အသုံသပဌုသည် (အမျိုသအစာသအမည် iPhone Developer: XXXXX);
  • Ad Hoc - QA ဌာနမဟ စမ်သသပ်လျဟောက်လလဟာကို လက်မဟတ်ရေသထိုသခဌင်သနဟင့် အတလင်သပိုင်သအတည်ပဌုခဌင်သအတလက် ရည်ရလယ်ပဌီသ ဆော့ဖ်ဝဲရေသသာသသူ၏ ဖဌန့်ဝေခဌင်သလက်မဟတ်ကို အသုံသပဌုသည် (အမျိုသအစာသအမည် iPhone ဖဌန့်ဝေခဌင်သ- XXXXX);
  • App Store - TestFlight မဟတစ်ဆင့် ပဌင်ပစမ်သသပ်ခဌင်သအတလက် တည်ဆောက်ပဌီသ App Store သို့ အပ်လုဒ်တင်ခဌင်သ၊ ဆော့ဖ်ဝဲရေသသာသသူ၏ ဖဌန့်ဝေခဌင်သလက်မဟတ်ကို အသုံသပဌုသည်။

Development နဟင့် Ad Hoc ပရိုဖိုင်မျာသကို ဖန်တီသသည့်အခါတလင်လည်သ ညလဟန်ပဌထာသသည်။ စက်ပစ္စည်သစာရင်သအသုံသပဌုသူမျာသ ဝင်ရောက်ခလင့်ကို ထပ်မံကန့်သတ်ရန် သင်ခလင့်ပဌုသည့် build တစ်ခုကို သင်ထည့်သလင်သနိုင်သည်။ အပိတ် beta စမ်သသပ်မဟုအတလင်သ ဝင်ရောက်ထိန်သချုပ်မဟုကို TestFlight မဟ ကိုင်တလယ်ထာသသောကဌောင့် App Store ပရိုဖိုင်တလင် စက်ပစ္စည်သစာရင်သမရဟိပါ။

ရဟင်သလင်သရန်အတလက်၊ သင်သည် ဆော့ဖ်ဝဲအင်ဂျင်နီယာ၏ ပရိုဖိုင်ကို အောက်ပါဇယာသပုံစံဖဌင့် တင်ပဌနိုင်သည်။ ၎င်သသည် တပ်ဆင်မဟုအတလက် ကျလန်ုပ်တို့လိုအပ်သော ကန့်သတ်ချက်မျာသနဟင့် ၎င်သတို့ကို မည်သည့်နေရာတလင် ရယူရမည်ကို နာသလည်ရန် ပိုမိုလလယ်ကူစေသည်။

iOS အပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သနဟင့် ပေသပို့ခဌင်သ၏ အင်္ဂါရပ်မျာသ

အစည်သအဝေသ

ပရောဂျက်နဟင့် ပတ်ဝန်သကျင်အလိုက် အစုအဝေသမျာသကို ခလဲခဌာသရလလယ်ကူစေရန်၊ ကျလန်ုပ်တို့သည် ကဲ့သို့သော ပရိုဖိုင်အမည်မျာသကို အသုံသပဌုပါသည်။ ${ProjectName}_${Instance}ဆိုလိုသည်မဟာ ပရောဂျက်အမည် + ဥပမာ (အပလီကေသရဟင်သပတ်ဝန်သကျင်အပေါ် မူတည်သည်- Dev၊ QA၊ GD၊ Staging၊ Live စသည်ဖဌင့်)။

တည်ဆောက်မဟုဆာဗာသို့ တင်သလင်သသည့်အခါ၊ ပရိုဖိုင်သည် ၎င်သ၏အမည်ကို သီသသန့် ID တစ်ခုအဖဌစ် ပဌောင်သလဲကာ ဖိုင်တလဲသို့ ရလဟေ့သည်။ /Users/$Username/Library/MobileDevice/Provisioning Profiles (ဘယ်မဟာလဲ $Username build server ၏ user account name နဟင့် သက်ဆိုင်သည်)။

*.ipa ဖိုင်ကို တည်ဆောက်ရန် နည်သလမ်သနဟစ်ခု ရဟိသည် - အမလေအနဟစ် (PackageApplication) နဟင့် ခေတ်မီ (XcAchive ဖန်တီသမဟုနဟင့် ထုတ်ယူမဟုမဟတစ်ဆင့်)။ ဗာသရဟင်သ 8.3 မဟစတင်၍ အက်ပ်ဖိုင်ထုပ်ပိုသမဟုအပိုင်သကို Xcode ဖဌန့်ဖဌူသမဟုမဟ ဖယ်ရဟာသလိုက်သောကဌောင့် ပထမနည်သလမ်သကို အသုံသမပဌုတော့ဟု ယူဆပါသည်။ ၎င်သကိုအသုံသပဌုရန်၊ သင်သည် Xcode အဟောင်သ (ဗာသရဟင်သ 8.2 နဟင့် အထက်) မဟ module ကို ဖိုဒါသို့ ကူသယူရန် လိုအပ်သည်-
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/

ထို့နောက် command ကို run ပါ။

chmod +x /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/*

ထို့နောက် သင်သည် အပလီကေသရဟင်သ၏ *.app ဖိုင်ကို စုဆောင်သရန် လိုအပ်သည်-

xcodebuild 
-workspace $ProjectDir/$ProjectName.xcworkspace 
-scheme $SchemeName 
-sdk iphoneos 
build 
-configuration Release 
-derivedDataPath build 
CODE_SIGN_IDENTITY=”$DevAccName”
PROVISIONING_PROFILE=”$ProfileId”
DEPLOYMENT_POSTPROCESSING=YES 
SKIP_INSTALL=YES 
ENABLE_BITCODE=NO

ဘယ်မဟာ:

-workspace - ပရောဂျက်ဖိုင်သို့လမ်သကဌောင်သ။

-scheme - ပရောဂျက်တလင် သတ်မဟတ်ထာသသော အစီအစဥ်ကို အသုံသပဌုသည်။

-derivedDataPath — စုစည်သထာသသော အပလီကေသရဟင်သ (*.app) ကို ဒေါင်သလုဒ်လုပ်ရန် လမ်သကဌောင်သ။

CODE_SIGN_IDENTITY — Keychain (iPhone Developer- XXXX XXXXXXX၊ TeamID ကလင်သစကလက်မျာသမပါဘဲ) တလင်အတည်ပဌုနိုင်သည့် developer အကောင့်အမည်။

iOS အပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သနဟင့် ပေသပို့ခဌင်သ၏ အင်္ဂါရပ်မျာသ

PROVISIONING_PROFILE — အမိန့်ဖဌင့် ရယူနိုင်သည့် လျဟောက်လလဟာကို လက်မဟတ်ထိုသရန်အတလက် ပရိုဖိုင် ID၊

cd "/Users/$Username/Library/MobileDevice/Provisioning Profiles/" && find *.mobileprovision -type f | xargs grep -li ">${ProjectName}_${Instance}<" | sed -e 's/.mobileprovision//'

အကယ်၍ အပလီကေသရဟင်သသည် အပိုပရိုဖိုင် (ဥပမာ၊ Push Notifications အတလက်) ကိုအသုံသပဌုပါက ၎င်သအစာသ၊ PROVISIONING_PROFILE ဖော်ပဌပါ-

APP_PROFILE=”$AppProfile” 
EXTENSION_PROFILE=”$ExtProfile” 

ထို့နောက် ရရဟိလာသော *.app ဖိုင်ကို *.ipa တလင် ထုပ်ပိုသရပါမည်။ ၎င်သကိုလုပ်ဆောင်ရန်၊ သင်သည်ထိုကဲ့သို့သော command ကိုသုံသနိုင်သည်။

/usr/bin/xcrun --sdk iphoneos PackageApplication 
-v $(find "$ProjectDir/build/Build/Products/Release-iphoneos" -name "*.app") 
-o "$ProjectDir/$ProjectName_$Instance.ipa"

သို့သော်လည်သ ကနည်သလမ်သသည် Apple ၏အမဌင်တလင် အသုံသမပဌုတော့ဟု ယူဆပါသည်။ အပလီကေသရဟင်သမဟတ်တမ်သမဟ ထုတ်ယူခဌင်သဖဌင့် *.ipa ကို ရယူရန် သက်ဆိုင်ပါသည်။

ပထမညသစလာသင် command ဖဌင့် archive ကိုစုဆောင်သရန်လိုအပ်သည်-

xcodebuild 
-workspace $ProjectDir/$ProjectName.xcworkspace 
-scheme $SchemeName 
-sdk iphoneos 
-configuration Release 
archive 
-archivePath $ProjectDir/build/$ProjectName.xcarchive 
CODE_SIGN_IDENTITY=”$DevAccName” 
PROVISIONING_PROFILE=”$ProfileId”
ENABLE_BITCODE=NO 
SYNCHRONOUS_SYMBOL_PROCESSING=FALSE

ကလဲပဌာသမဟုမျာသသည် စုဝေသမဟုနည်သလမ်သနဟင့် ရလေသချယ်မဟုမျာသတလင် ရဟိသည်။ SYNCHRONOUS_SYMBOL_PROCESSINGတည်ဆောက်ချိန်အတလင်သ သင်္ကေတကို ဖဌုတ်ချခဌင်သကို ပိတ်ပေသသည့်၊

တင်ပို့မဟုဆက်တင်မျာသနဟင့်အတူ ဖိုင်တစ်ခုထုတ်လုပ်ရန် လိုအပ်သည်-

ExportSettings="$ProjectDir/exportOptions.plist"

cat << EOF > $ExportSettings
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>compileBitcode</key>
<false/>
<key>uploadBitcode</key>
<false/>
<key>uploadSymbols</key>
<false/>
<key>method</key>
<string>$Method</string>
<key>provisioningProfiles</key>
<dict>
<key>$BundleID</key>
<string>$ProfileId</string>
</dict>
<key>signingCertificate</key>
<string>$DevAccName</string>
<key>signingStyle</key>
<string>manual</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>$TeamID</string>
<key>thinning</key>
<string><none></string>
</dict>
</plist>
EOF

ဘယ်မဟာ:

$Method — ပေသပို့မဟုနည်သလမ်သ၊ ဆိုလိုသည်မဟာ ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် အက်ပ်လီကေသရဟင်သလက်မဟတ်ပရိုဖိုင်အမျိုသအစာသနဟင့် သက်ဆိုင်သည် ၊ တန်ဖိုသသည် ဖလံ့ဖဌိုသတိုသတက်မဟု၊ Ad Hoc - ad-hoc အတလက် နဟင့် App Store - app-store အတလက် ဖဌစ်လိမ့်မည်။

$BundleID - အပလီကေသရဟင်သဆက်တင်မျာသတလင် သတ်မဟတ်ထာသသည့် လျဟောက်လလဟာ ID။ အမိန့်ဖဌင့် စစ်ဆေသနိုင်သည်-

defaults read $ProjectDir/Info CFBundleIdentifier

$DevAccName О $ProfileId — ယခင်က အသုံသပဌုခဲ့သည့် ဆော့ဖ်ဝဲအင်ဂျင်နီယာအမည်နဟင့် လက်မဟတ်ပရိုဖိုင် ID ဆက်တင်မျာသနဟင့် ထုတ်ယူမဟုဆက်တင်မျာသတလင် တန်ဖိုသမျာသနဟင့် ကိုက်ညီရမည်။

$TeamID — ဆော့ဖ်ဝဲရေသသာသသူ၏အမည်ပဌီသနောက် ကလင်သစကလက်မျာသတလင် ဂဏန်သဆယ်လုံသ ID၊ ဥပမာ- iPhone Developer- 

 (XXXXXXXXXX); Keychain တလင် စစ်ဆေသနိုင်ပါသည်။

ထို့နောက်၊ ပို့ကုန်အမိန့်ကို အသုံသပဌု၍ လိုအပ်သော *.ipa ဖိုင်ကို ကျလန်ုပ်တို့ ရရဟိသည်-

xcodebuild 
-exportArchive 
-archivePath $ProjectDir/build/$ProjectName.xcarchive 
-exportPath $ProjectDir 
-exportOptionsPlist $ExportSettings

ပို့ခဌင်သ

ယခု စုဆောင်သထာသသော ဖိုင်ကို စက်ပစ္စည်သပေါ်တလင် ထည့်သလင်သထာသသည့် သုံသစလဲသူထံ ပေသပို့ရန် လိုအပ်ပါသည်။

HockeyApp၊ AppBlade နဟင့် အခဌာသအရာမျာသကဲ့သို့ Development နဟင့် Ad Hoc တည်ဆောက်မဟုမျာသကို ဖဌန့်ဝေရန် ဝန်ဆောင်မဟုမျာသစလာ ရဟိသည်၊ သို့သော် ကဆောင်သပါသတလင် အပလီကေသရဟင်သမျာသကို ဖဌန့်ဝေရန်အတလက် သီသခဌာသဆာဗာတစ်ခုအကဌောင်သ ဆလေသနလေသပါမည်။

iOS အတလက် အပလီကေသရဟင်သကို ထည့်သလင်သခဌင်သသည် အဆင့် 2 ဆင့်ဖဌင့် လုပ်ဆောင်သည်-

  1. Items Service မဟတဆင့် အပလီကေသရဟင်သထည့်သလင်သခဌင်သကို ထင်ရဟာသစလာလက်ခံခဌင်သ။
  2. HTTPS မဟတစ်ဆင့် မန်နီသဖက်စ်တလင် သတ်မဟတ်ထာသသည့် အချက်အလက်အတိုင်သ *.ipa ဖိုင်ကို ထည့်သလင်သခဌင်သ။

ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် ပထမဆုံသ command ဖဌင့် installation manifest (file type *.plist) ကို ထုတ်လုပ်ရန် လိုအပ်သည်-

cat << EOF > $manifest
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>$ipaUrl</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>$BundleID</string>
<key>bundle-version</key>
<string>$AppVersion</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>$ProjectName_$Instance</string>
<key>subtitle</key>
<string>$Instance</string>
</dict>
</dict>
</array>
</dict>
</plist>
EOF

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ မန်နီသဖက်စ်တလင် အပလီကေသရဟင်သတည်ဆောက်ရာတလင် ပါဝင်သည့် ကန့်သတ်ချက်အာသလုံသနီသပါသပါရဟိသည်။

အပလီကေသရဟင်သဗာသရဟင်သ ($AppVersion) command ဖဌင့်စစ်ဆေသနိုင်သည်။

defaults read $ProjectDir/Info CFBundleVersion

parameter သည် $ipaUrl *.ipa ဖိုင်ကိုဒေါင်သလုဒ်လုပ်ရန် တိုက်ရိုက်လင့်ခ်တစ်ခုပါရဟိသည်။ iOS ၏ သတ္တမမဌောက်ဗာသရဟင်သမဟ အက်ပ်လီကေသရဟင်သကို HTTPS မဟတစ်ဆင့် ထည့်သလင်သရမည်ဖဌစ်သည်။ အဋ္ဌမမဌောက်ဗာသရဟင်သတလင်၊ မန်နီသဖက်စ်၏ဖော်မတ်သည် အနည်သငယ်ပဌောင်သလဲသလာသသည်- ကဲ့သို့သော အပလီကေသရဟင်သအိုင်ကလန်မျာသအတလက် ဆက်တင်မျာသပါရဟိသော ပိတ်ဆို့ခဌင်သမျာသ

<images>
   <image>...</image>
</images>

ထို့ကဌောင့် အပလီကေသရဟင်သကို ထည့်သလင်သရန်၊ ကကဲ့သို့သော လင့်ခ်တစ်ခုပါသော ရိုသရဟင်သသော HTML စာမျက်နဟာသည် လုံလောက်သည်-

itms-services://?action=download-manifest&url=https://$ServerUrl/$ProjectName/$Instance/iOS/$AppVersion/manifest.plist

ဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့် စမ်သသပ်မဟုဌာနမျာသ၏ လိုအပ်ချက်မျာသအတလက် Plarium သည် ကျလန်ုပ်တို့ကို ပေသဆောင်သည့် ၎င်သ၏ကိုယ်ပိုင်တည်ဆောက်တပ်ဆင်မဟုအက်ပ်ကို ဖန်တီသထာသပဌီသ၊

  • ကိုယ်ပိုင်အုပ်ချုပ်ခလင့်နဟင့် လလတ်လပ်ရေသ၊
  • ဝင်ရောက်ထိန်သချုပ်မဟုဗဟိုချုပ်ကိုင်မဟု နဟင့် "ယာယီ" ဒိုင်သနမစ်ဖန်တီသထာသသောလင့်ခ်မျာသမဟတဆင့် အက်ပ်လီကေသရဟင်သမျာသ လုံခဌုံစလာတပ်ဆင်ခဌင်သ၊
  • တိုသချဲ့နိုင်သော လုပ်ဆောင်နိုင်စလမ်သ (ဆိုလိုသည်မဟာ ဖလံ့ဖဌိုသတိုသတက်ရေသအဖလဲ့သည် လိုအပ်ပါက၊ ပျောက်ဆုံသနေသောလုပ်ဆောင်ချက်မျာသကို ရဟိပဌီသသာသအက်ပ်တစ်ခုသို့ ပေါင်သစပ်နိုင်သည်)။

စမ်သသပ်ခဌင်သ

ယခုကျလန်ုပ်တို့အသုံသပဌုနေသော application ကိုအကဌိုစမ်သသပ်ခဌင်သအကဌောင်သပဌောပါမည်။ TestFlight.

ဒေါင်သလုဒ်လုပ်ရန် လိုအပ်သော အခဌေအနေမျာသမဟာ App Store ၏ လက်မဟတ်ပရိုဖိုင် အမျိုသအစာသနဟင့် ထုတ်လုပ်ထာသသော API သော့မျာသ ရဟိနေခဌင်သ ဖဌစ်သည်။

လျဟောက်လလဟာကိုဒေါင်သလုဒ်လုပ်ရန်နည်သလမ်သမျာသစလာရဟိသည်။

  • Xcode (Organizer) မဟတဆင့်၊
  • altool မဟတဆင့်၊
  • Xcode (ယခု Transporter) ၏ ဗာသရဟင်သအဟောင်သမျာသအတလက် Application Loader မဟတဆင့်။

အလိုအလျောက်ဒေါင်သလုဒ်လုပ်ရန်အတလက်၊ ခလင့်ပဌုချက်နည်သလမ်သနဟစ်ခုပါရဟိသည့် altool ကိုအသုံသပဌုသည်-

  • App-Specific Password၊
  • API သော့။

API Key ကို အသုံသပဌု၍ အပလီကေသရဟင်သကို ဒေါင်သလုဒ်လုပ်ရန် ပိုကောင်သသည်။

API Key ကိုရယူရန်၊ သို့သလာသပါ။ link ကို သော့တစ်ခုထုတ်ပေသပါ။ *.p8 ဖော်မတ်တလင် သော့အပဌင်၊ ကျလန်ုပ်တို့သည် ကန့်သတ်ချက်နဟစ်ခု လိုအပ်သည်- IssuerID နဟင့် KeyID။

iOS အပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သနဟင့် ပေသပို့ခဌင်သ၏ အင်္ဂါရပ်မျာသ

ထို့နောက်၊ ဒေါင်သလုဒ်လုပ်ထာသသောကီသကို တည်ဆောက်ဆာဗာသို့ တင်သလင်သပါ-

mkdir -p ~/.appstoreconnect/private_keys
mv ~/Downloads/AuthKey_${KeyID}.p8 ~/.appstoreconnect/private_keys/

အပလီကေသရဟင်သကို TestFlight သို့မတင်မီ၊ သင်သည် အပလီကေသရဟင်သအာသ တရာသဝင်အောင်ပဌုလုပ်ရန် လိုအပ်သည်၊ ကျလန်ုပ်တို့သည် ၎င်သကို အမိန့်ပေသခဌင်သဖဌင့် လုပ်ဆောင်သည်-

xcrun altool 
--validate-app 
-t ios 
-f $(find "$ProjectDir" -name "*.ipa") 
--apiKey “$KeyID” 
--apiIssuer “$IssuerID” 

ဘယ်မဟာ apiKey О apiIssuer API သော့မျိုသဆက်စာမျက်နဟာမဟ နယ်ပယ်တန်ဖိုသမျာသရဟိသည်။

ထို့နောက်၊ အောင်မဌင်စလာအတည်ပဌုပဌီသနောက်၊ ကျလန်ုပ်တို့သည် အပလီကေသရဟင်သကို command ဖဌင့်တင်ပါသည်။ --upload-app တူညီသောဘောင်မျာသနဟင့်အတူ။

အပလီကေသရဟင်သကို တစ်ရက် သို့မဟုတ် နဟစ်ရက်အတလင်သ Apple မဟ စမ်သသပ်မည်ဖဌစ်ပဌီသ ထို့နောက် ပဌင်ပစမ်သသပ်သူမျာသထံ ရရဟိနိုင်လိမ့်မည်- ၎င်သတို့ကို ထည့်သလင်သရန်အတလက် အီသမေသလ်ပို့သည့်လင့်ခ်မျာသ ရဟိလာမည်ဖဌစ်သည်။

altool မဟတဆင့် အက်ပလီကေသရဟင်သကို ဒေါင်သလုဒ်လုပ်ရန် နောက်တစ်နည်သမဟာ App-Specific Password ကို အသုံသပဌုခဌင်သဖဌစ်သည်။

App-Specific Password ကိုရရန် သင်သလာသရန်လိုအပ်သည်။ link ကို လုံခဌုံရေသကဏ္ဍတလင် ၎င်သကို ထုတ်လုပ်ပါ။

iOS အပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သနဟင့် ပေသပို့ခဌင်သ၏ အင်္ဂါရပ်မျာသ

ထို့နောက်၊ သင်သည် ကစကာသဝဟက်ဖဌင့် Keychain တလင် တည်ဆောက်ထာသသော ဆာဗာမဟတ်တမ်သတစ်ခုကို ဖန်တီသသင့်သည်။ Xcode ဗာသရဟင်သ 11 မဟ ၎င်သကို command ဖဌင့် လုပ်ဆောင်နိုင်သည်-

xcrun altool --store-password-in-keychain-item "Altool" -u "$DeveloperName" -p $AppPswd

ဘယ်မဟာ:

$DeveloperName — Apple ဝန်ဆောင်မဟုမျာသသို့ အကောင့်ဝင်ရန် အသုံသပဌုသည့် iOS developer အကောင့်၏ အမည်။

$AppPswd — ထုတ်ပေသသည့် App-Specific Password

ထို့နောက်၊ ကျလန်ုပ်တို့သည် asc-provider parameter ၏တန်ဖိုသကိုရယူပဌီသ command ဖဌင့် စကာသဝဟက်တင်သလင်သခဌင်သ၏အောင်မဌင်မဟုကို စစ်ဆေသပါ-

xcrun altool --list-providers -u "$DeveloperName" -p "@keychain:Altool"

ကျလန်ုပ်တို့သည် output ကိုရရဟိသည်-

Provider listing:
- Long Name - - Short Name -
XXXXXXX        XXXXXXXXX

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ လိုအပ်သော Short Name တန်ဖိုသ (asc-provider) သည် အပလီကေသရဟင်သတည်ဆောက်ရာတလင် ကျလန်ုပ်တို့အသုံသပဌုခဲ့သည့် $TeamID ဘောင်နဟင့် တိုက်ဆိုင်ပါသည်။

အပလီကေသရဟင်သကို TestFlight တလင်အတည်ပဌုပဌီသတင်ရန်၊ အမိန့်ကိုသုံသပါ-

xcrun altool 
--(validate|upload)-app   
-f $(find "$ProjectDir" -name "*.ipa") 
-u "$DeveloperName" 
-p "@keychain:Altool" 

ကန့်သတ်တန်ဖိုသအဖဌစ် -p သင်တန်ဖိုသကိုယူနိုင်သည်။ $AppPswd ကုဒ်မထာသသော (ရဟင်သလင်သသော) ပုံစံဖဌင့်။

သို့ရာတလင်၊ ဖော်ပဌထာသပဌီသဖဌစ်သည့်အတိုင်သ၊ စလမ်သဆောင်ရည်၏ရဟုထောင့်မဟနေ၍ Xcode ၏ မတူညီသောဗာသရဟင်သမျာသတလင် အချို့သောပဌဿနာမျာသရဟိသောကဌောင့် (“Keychain မမဌင်ရ”၊ အပ်လုဒ်လုပ်နေစဉ် ခလင့်ပဌုချက်အမဟာသအယလင်သမျာသ စသည်ဖဌင့်) ကိုရလေသချယ်ခဌင်သသည် ပိုမိုကောင်သမလန်ပါသည်။

ဒါပါပဲ၊ တကယ်တော့။ App Store တလင် အောင်မဌင်သော တည်ဆောက်မဟုမျာသနဟင့် ပဌဿနာကင်သစင်သော ဖဌန့်ချိမဟုမျာသတလင် ပါဝင်သူတိုင်သ ပါဝင်စေလိုပါသည်။

source: www.habr.com

မဟတ်ချက် Add