<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: xang pheresakha</title>
    <description>The latest articles on DEV Community by xang pheresakha (@xang555).</description>
    <link>https://dev.to/xang555</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F406930%2F035cd165-1559-4812-b804-6053a515e521.jpeg</url>
      <title>DEV Community: xang pheresakha</title>
      <link>https://dev.to/xang555</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xang555"/>
    <language>en</language>
    <item>
      <title>ການເຮັດ Automated mysql backup ຢ່າງງ່າຍ!</title>
      <dc:creator>xang pheresakha</dc:creator>
      <pubDate>Sun, 02 May 2021 09:49:16 +0000</pubDate>
      <link>https://dev.to/xang555/automated-mysql-backup-32i3</link>
      <guid>https://dev.to/xang555/automated-mysql-backup-32i3</guid>
      <description>&lt;p&gt;ສະບາຍດີຜູ້ອ່ານທຸກຄົນມື້ນີ້ຈະມາແນະນຳການເຮັດ Automated mysql backup ແບບງ່າຍໆແຕ່ໄດ້ຜົນດີ ແລະ ຊ່ວຍຊີວິດບັນດາ Dveloper ທັງຫຼາຍໄດ້ຍາມເມື່ອ database ເກີດມີບັນຫາຂຶ້ນມາເຮົາກໍ່ສາມາດເອົາ backup ນີ້ໄປ restore ກູ້ຂໍ້ມູນຂຶ້ນມາຢ່າງງ່າຍ ແລະ ທັນການ ວ່າແລ້ວກໍ່ໄປເບິ່ງກັນເລີຍຍຍຍ. (ສຳລັບບົດຄວາມນີ້ແມ່ນທົດສອບຢູ່ Ubuntu 20.04)&lt;/p&gt;

&lt;h1&gt;
  
  
  ໃຊ້ງານ mysqlbkup
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;mysqlbkup&lt;/code&gt; ເປັນ Lightweight MySQL backup script ທີ່ຄົນໃຈດີເຮັດໃຫ້ໃຊ້ Free ຂໍ້ດີຄື config ເພື່ອໃຊ້ງານແບບງ່າຍໆສາມາດໄປ download ຫຼື clone ມາໃຊ້ໄດ້ເລີຍທີ່ &lt;a href="https://github.com/quickshiftin/mysqlbkup"&gt;mysqlbkup&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$&amp;gt; git clone https://github.com/quickshiftin/mysqlbkup
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ຕິດຕັ້ງ
&lt;/h3&gt;

&lt;p&gt;ເຂົ້າໄປທີ່ &lt;code&gt;cd mysqlbkup&lt;/code&gt; ຫຼັງຈາກນັ້ນໃຊ້ຄຳສັ່ງ &lt;code&gt;sudo ./install&lt;/code&gt; ນອກຈາກນີ້ແລ້ວໃຫ້ຕິດຕັ້ງ &lt;code&gt;mysql client&lt;/code&gt; ພ້ອມ &lt;code&gt;apt install mysql-client-core-8.0&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  ຕັ້ງຄ່າການໃຊ້ງານ
&lt;/h3&gt;

&lt;p&gt;ເຮົາຕ້ອງໄປຕັ້ງຄ່າຢູ່ 2 files &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/etc/mysqlbkup.cnf.&lt;/code&gt;
ຕັ້ງຄ່າການເຊື່ອມຕໍ່ກັບ mysql server ຂອງເຮົາ
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[mysql]
host=127.1.1.1
user=root
password=mypassword

[mysqldump]
host=127.1.1.1
user=root
password=mypassword
force
opt
routines
triggers
max_allowed_packet=250M 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/etc/mysqlbkup.config&lt;/code&gt;
ຕັ້ງຄ່າບ່ອນເກັບ file backup, ການບີບອັດ file ພິເສດແມ່ນ &lt;code&gt;MAX_BACKUPS&lt;/code&gt; ເປັນການບອກໃຫ້ &lt;code&gt;mysqlbkup&lt;/code&gt; backup file ຕໍ່ database ສູງສຸດຈັກ file ເຮົາຄົງບໍ່ຕ້ອງການເກັບ backup ທັງໝົດຂອທຸກໆມື້ ຫຼື ທຸກໆຊົ່ວໂມງໄວ້ທີ່ server ແນ່ນອນເພາະມັນຈະເປືອງພື້ນທີ sever ໂດຍບໍ່ຈຳເປັນ ແລະ ຖ້າໃຊ້ງານໄປນານໆກໍ່ເຮັດໃຫ້ພື້ນທີ່ sever ເຕົມໄດ້ເຮົາພຽງຕ້ອງການ backup ຂໍ້ມູນລ່າສຸດເທົ່ານັ້ນ ສຳລັບຄ່ານີ້ກໍ່ຂຶ້ນກັບຕົນເອງເລີຍວ່າຕ້ອງການ backup ຍ້ອນຫຼັງໄປຈັກມື້.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;##########
# Configuration file for mysqlbkup
# https://github.com/quickshiftin/mysqlbkup
##########

DEFAULTS_FILE=/etc/mysqlbkup.cnf

BACKUP_DIR=/var/mysqlbkup

MAX_BACKUPS=3

DATE_FORMAT=

# Databases to ignore
# This is a space separated list.
# Each entry supports bash pattern matching by default.
# You may use POSIX regular expressions for a given entry by prefixing it with a tilde.
DB_EXCLUDE_FILTER=

# Compression library
BKUP_BIN=gzip # Change this to xz if you wish, for tighter compression
BKUP_EXT=gz   # Change this to xz if you wish, for tighter compression
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ຫຼັງຈາກ config ຮຽບຮ້ອຍແລ້ວທົດສອບ run script&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$&amp;gt; mysqlbkup.sh dry
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ຖ້າບໍ່ມີຂໍ້ຜິດພາດໃດໆກໍ່ເປັນອັນວ່າການຕັ້ງຄ່າສຳເລັດ ແລະ ພ້ອມໃຊ້ງານແລ້ວ&lt;/p&gt;

&lt;h1&gt;
  
  
  Automated ດ້ວຍ &lt;code&gt;cron job&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;ໃນການສັ່ງ script ໃຫ້ເຮັດວຽກຕາມວັນ ແລະ ເວລາທີ່ເຮົາຕ້ອງການແມ່ນໃຊ້ &lt;code&gt;crontab&lt;/code&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ຕັ້ງຄ່າ crontab
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$&amp;gt; crontab -e
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ເພື່ອງ່າຍຕໍ່ການຕັ້ງຄ່າ cron job ແນະນຳໃຊ້ generator online ທີ່ມີຫຼາກຫຼາຍໃຫ້ເລືອກເຊັ່ນ &lt;a href="https://crontab.guru/"&gt;crontab guru&lt;/a&gt;, &lt;a href="https://crontab-generator.org/"&gt;Crontab Generator&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ຕົວຢ່າງການຕັ້ງຄ່າ crontab:&lt;/p&gt;

&lt;p&gt;ສັ່ງໃຫ້ເຮັດວຽກທຸກໆມື້ໃນເວລາ 00:00 AM&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SHELL=/bin/bash
MAILTO=example@gmail.com
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

## mysql backups --------------------------------------
0 0 * * * /usr/local/bin/mysqlbkup.sh 1&amp;gt;&amp;gt; /var/log/mysqlbkup.log 2&amp;gt;&amp;gt;/var/log/mysqlbkup-err.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ເພື່ອທົດສອບການເຮັດວຽກ cron job ສາມາດຕັ້ງຄ່າໃຫ້ເຮັດວຽກທຸກໆນາທີໄປເລີຍກໍ່ໄດ້&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SHELL=/bin/bash
MAILTO=example@gmail.com
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

## mysql backups --------------------------------------
* * * * * /usr/local/bin/mysqlbkup.sh 1&amp;gt;&amp;gt; /var/log/mysqlbkup.log 2&amp;gt;&amp;gt;/var/log/mysqlbkup-err.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ຫຼັງຈາກນັ້ນກໍ່ restart &lt;code&gt;cron&lt;/code&gt; service&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$&amp;gt; service cron restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ກວດເບິ່ງ status&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$&amp;gt; service cron restart
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ກວດເບິ່ງ cron job list&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$&amp;gt; crontab -l
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ຖ້າຫາກບໍ່ສະແດງ config ສະແດງວ່າ cron job ຍັງບໍ່ເຮັດວຽກໃຫ້ໄປກວດເບິ່ງການຕັ້ງວ່າວ່າຖືກຕ້ອງແລ້ວຫຼືບໍ່ ອາດຈະໄປກຳນົດສິດການເຂົ້າເຖິງ &lt;code&gt;chmod -R 600 /var/spool/cron/crontabs&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ເມື່ອຕັ້ງຄ່າ ແລະ run cron job ສຳເລັດແລ້ວກໍ່ໃຫ້ໄປກວດເບິ່ງ log file ຫຼື backup destination ທີ່ໄດ້ກຳນົດໄວ້ໃນ file ຕັ້ງຄ່າ ວ່າມີ file backup ຢູ່ຫຼືບໍ່. ຖ້າບໍ່ມີຫຍັງຜິດພາດກໍ່ຈະເຫັນ file backup ເທົ່ານີ້ກໍ່ໃຊ້ງານ automated mysql backup ໄດ້ແລ້ວ. &lt;/p&gt;

&lt;p&gt;ເປັນວິທີງ່າຍໆແຕ່ກໍ່ໃຊ້ໄດ້ຜົນດີ. ຖ້າຈະເອົາກັນຄັກແນ່ກໍ່ອາດຈະໃຊ້ &lt;code&gt;cloud backup&lt;/code&gt;, &lt;code&gt;database sync&lt;/code&gt;, &lt;code&gt;ຕັ້ງ server backup ເອງ&lt;/code&gt; ກໍ່ແລ້ວແຕ່ຄວາມສຳຄັນຂອງຂໍ້ມູນ ແລະ ໂປຣເຈັກຂອງເຮົາ.&lt;/p&gt;

&lt;p&gt;ມາຮອດນີ້ກໍ່ຂໍ້ຈົບບົດຄວາມສັ້ນໆນີ້ໄວ້ເທົ່ານີ້ກ່ອນໄວ້ພົບກັນໃນບົດຄວາມຕໍ່ໄປ.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay Safe ກັນເດີ&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>mysql</category>
      <category>backup</category>
      <category>automated</category>
      <category>database</category>
    </item>
    <item>
      <title>ວິທີ Upload ios App ຂຶ້ນ app store ຂອງ apple (ປີ 2021)</title>
      <dc:creator>xang pheresakha</dc:creator>
      <pubDate>Wed, 28 Apr 2021 06:16:35 +0000</pubDate>
      <link>https://dev.to/xang555/upload-ios-app-app-store-apple-2021-j5f</link>
      <guid>https://dev.to/xang555/upload-ios-app-app-store-apple-2021-j5f</guid>
      <description>&lt;p&gt;ສະບາຍດີ Developer ທຸກຄົນໂດຍສະເພາະ mobile developer ມືໃຫມ່ທີ່ກຳລັງເລີ່ມສຶກສາການພັດທະນາ mobile app ບໍ່ວ່າຈະເປັນ native ຫຼື hybrid app ຫຼັງຈາກທີ່ພັດທະນາແອັບສຳເລັດຮຽບຮ້ອຍແລ້ວຕໍ່ໄປກໍ່ເປັນການ publish app ຂຶ້ນ store ໃຫ້ຄົນທົ່ວໄປ download ໄປໃຊ້ງານກັນ. ບໍ່ວ່າຈະເປັນ playstore ຂອງ android ແລະ appstore ຂອງ ios ມືໃຫມ່ຫຼາຍຄົນປະສົບບັນຫາໃນການເອົາແອບຂຶ້ນ store ບໍ່ຮູ້ຈະເລີ່ມແນວໃດ, ເອົາຂຶ້ນຢູ່ໃສ່, ສະໝັກແນວໃດ. ໂດຍສະເພາະ app ios ທີ່ການເອົາຂຶ້ນ store ນັ້ນຂ້ອນຂ້າງຍາກ ແລະ ລະອຽດສົມຄວນ. ສະນັ້ນຈຶ່ງຂຽນບົດຄວາມນີ້ເພື່ອໃຫ້ມືໃຫມ່ທຸກຄົນໃຊ້ເປັນແນວທາງໃນການ upload app ຂຶ້ນ store ບໍ່ຕ້ອງໄປນັ່ງງົມໆທາວໆໃຫ້ເສຍເວລາກັນດົນ(ຄືເຈົ້າຂອງ blog ແຮ ແຮ). ສຳລັບບົດຄວາມນີ້ຂໍເລີ່ມທີ່ ios ກ່ອນເລີຍເພາະເປັນໂຕທີ່ຍາກ ແລະ ຫຼາຍຄົນຢາກຮູ້ ສ່ວນ android ເອົາໄວ້ບົດຄວາມຕໍ່ໄປກໍ່ແລ້ວກັນ ມາເລີ່ມກັນເລີຍ!.&lt;/p&gt;

&lt;h1&gt;
  
  
  Create apple account
&lt;/h1&gt;

&lt;p&gt;ກ່ອນອື່ນເລີຍຕ້ອງໄປສ້າງ &lt;code&gt;apple account&lt;/code&gt; ຫຼື &lt;code&gt;apple ID&lt;/code&gt; ກ່ອນ ໂດຍໄປທີ່ &lt;a href="https://appleid.apple.com/account"&gt;Create Apple ID&lt;/a&gt; ຫຼັງຈາກນັ້ນກໍ່ປ້ອນຂໍ້ມູນຕາມຟອມໃຫ້ຄົບຖ້ວນປະຕິບັດຕາມຂັ້ນຕອນຂອງລະບົບກໍ່ຈະສຳເລັດການສະໝັກ ເຊິ່ງໜ້າຈະບໍ່ຍາກສຳລັບຄົນທີ່ໃຊ້ຄອມເປັນຢູ່ແລ້ວຫລ່ະ!.&lt;/p&gt;

&lt;h1&gt;
  
  
  Register Apple Developer Program
&lt;/h1&gt;

&lt;p&gt;ຫຼັງຈາກສ້າງ apple ID ສຳເລັດແລ້ວຂັ້ນຕອນຕໍ່ໄປຄືຂັ້ນຕອນທີ່ຄິດວ່າຍາກສຸດແລ້ວໃນການ publish ios app ຂຶ້ນ appstore ນັ້ນກໍ່ຄື ການສະໝັກເຂົ້າ apple developer program ເຊິ່ງມີຫຼາຍຂັ້ນຕອນສົມຄວນໂດຍກ່ອນອື່ນໄປທີ່ &lt;a href="https://developer.apple.com/"&gt;apple developer&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ກົດເຂົ້າໄປທີ່ Account
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JTL4UaRy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vv6zdprm3h297os7pr13.png" alt="account"&gt;
&lt;/li&gt;
&lt;li&gt;Sign in ດ້ວຍ Apple ID ທີ່ໄດ້ມາກ່ອນໜ້ານີ້
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--I5nRADl9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrlw13879uv1wojouxwx.png" alt="Sign in"&gt;
&lt;/li&gt;
&lt;li&gt;ກົດເຂົ້າໄປທີ່ &lt;code&gt;Join The Developer Apple Program&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bk0314U---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j81lhqcx53ekskdzxwlf.png" alt="join dev apple"&gt;
&lt;/li&gt;
&lt;li&gt;ກົດເຂົ້າໄປທີ່ &lt;code&gt;Enroll&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n0A77brX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0gjuushudtaj7hb04he8.png" alt="Enroll"&gt;
&lt;/li&gt;
&lt;li&gt;ປ້ອນຂໍ້ມູນກ່ຽວກັບຕົນເອງລົງໄປເຊິ່ງແນະນຳໃຫ້ເອົາຕາມ &lt;code&gt;Passport&lt;/code&gt; ຫຼື &lt;code&gt;ID Card&lt;/code&gt; ເລີຍເພື່ອງ່າຍຕໍ່ການທີ່ທາງ apple ຈະ verify account ຂອງເຮົາຖ້າໃສ່ຊື່ຫຼິ້ນໆລົງໄປມັນຈະ &lt;code&gt;mail&lt;/code&gt; ມາດ່າແນ່ນອນ(ເຈົ້າຂອງ blog ເຄີຍເຮັດມາແລ້ວ ຮະຮະຮະຮະ).
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sND_GkSJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2wqvtknknmv7v50sn9qy.png" alt="fill infomation"&gt;
ຈາກນັ້ນກໍ່ກົດປຸ່ມ &lt;code&gt;Continue&lt;/code&gt; ແລ້ວມັນຈະຖາມໃຫ້ເຮົາ approve ເງືອນໄຂ ແລະ ຂໍ້ກຳນົດ ແນ່ນອນວ່າເຮົາກໍ່ຕ້ອງ approve ຫຼັງຈາກນັ້ນກໍ່ກົດປຸ່ມ &lt;code&gt;Continue&lt;/code&gt; ຕໍ່ໄປອີກກໍ່ຈະໃຫ້ເຮົາເລືອກປະເພດ account ຂອງເຮົາເຊິ່ງກໍ່ໃຫ້ເລືອກຕາມຄວາມເໝາະສົມຂອງ account ວ່າຈະໃຫ້ເປັນຂອງ ບຸກຄົນ ຫຼື  ບໍລິສັດ ຫຼື ອົງກອນ ແຕ່ສຳລັບບົດຄວາມນີ້ແມ່ນເລືອກເປັນລາຍບຸກຄົນເພາະຂັ້ນຕອນໃນການ verify ນັ້ນຈະງ່າຍກວ່າປະເພດອື່ນໆ ຈາກນັ້ນກໍ່ກົດປຸ່ມ &lt;code&gt;Continue&lt;/code&gt; ຕໍ່ໄປອີກຄັ້ງ.&lt;/li&gt;
&lt;li&gt;ເມື່ອຮອດໜ້າດັງຮູບລຸ່ມນີ້ແລ້ວ ໃຫ້.....&lt;code&gt;ຈ່າຍເງິນ&lt;/code&gt;! ແມ່ນແລ້ວ!...ອ່ານບໍ່ຜິດ! ຈຳເປັນຕ້ອງຈ່າຍເງິນເພາະ &lt;code&gt;apple developer program&lt;/code&gt; ບໍ່ໄດ້ Free ເຈົ້າຕ້ອງຈ່າຍປີໜຶ່ງ 99 USD/ປີ ເພື່ອໃຫ້ສາມາດໃຊ້ງານ &lt;code&gt;app store connect&lt;/code&gt; ທີ່ໄວ້ຈັດການແອັບຂອງເຮົາໃນ &lt;code&gt;store&lt;/code&gt; ແລະ ໃຫ້ແອັບຂອງເຮົາສາມາດມີຕົວຕົນໃນ store ທີ່ເຮັດໃຫ້ຄົນອື່ນສາມາດຄົ້ນຫາ ແລະດາວໂຫລດໄປໃຊ້ໄດ້. ບໍ່ຕ້ອງຄິດຍາກສຳລັບຂັ້ນຕອນນີ້ຖ້າເງິນພ້ອມກໍ່ກົດປຸ່ມ &lt;code&gt;Purchase&lt;/code&gt; ໄປໄດ້ເລີຍຫຼັງຈາກນັ້ນລະບົບກໍ່ຈະຖາມຫາເລກບັດ Credit ຫຼື masterCard ກໍ່ໃຫ້ປ້ອນຂໍ້ມູນຕາມຟອມນັ້ນໃຫ້ຄົບຖ້ວນແລ້ວກົດຍ້ອມຮັບເພື່ອຢືນຢັນການຈ່າຍເງິນ.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LLK5gpFZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fns81wlaexi3vufmzpq3.png" alt="purchase"&gt;
ຮູບລຸ່ມນີ້ແມ່ນການຈ່າຍເງິນສຳເລັດ ແລະ Account ຖືກສົ່ງໄປໃຫ້ທາງ apple ພິຈາລະນາຮຽບຮ້ອຍແລ້ວ
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HtEh1nn3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67x67jtqg1unx2cztwum.png" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;li&gt;ຫຼັງຈາກຈ່າຍເງິນຮຽບຮ້ອຍແລ້ວເມື່ອກັບເຂົ້າໄປທີ່ &lt;a href="https://developer.apple.com/"&gt;apple developer&lt;/a&gt; ກໍ່ຈະມີຂໍ້ຄວາມວ່າ
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4IBLp2UK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yklrqpzoxvx6n3aiures.png" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ຢ່າຕົກໃຈໄປ! ຮອດຂັ້ນຕອນນີ້ກໍ່ມີແຕ່ ລໍຖ້າ ແລະ ກໍ່ລໍຖ້າເພື່ອໃຫ້ທາງ apple ສົ່ງ &lt;code&gt;mail&lt;/code&gt; ມາຫາເຮົາເພື່ອຖາມເອົາຂໍ້ມູນທີ່ເປັນ private ບໍ່ວ່າຈະເປັນ &lt;code&gt;passport&lt;/code&gt; ຫຼື &lt;code&gt;ID card&lt;/code&gt; ເຊິ່ງເວລາລໍຖ້າກໍຈະປະມານ 2 ມື້(ເວລາອາເມລິກາ). ຖ້າທາງ apple ສົ່ງ mail ມາກໍ່ໃຫ້ປະຕິບັດຕາມທີ່ເຂົາເຈົ້າບອກ ສົ່ງຂໍ້ມູນທີ່ທາງ apple ຮ້ອງຂໍ້ມາໄປໄດ້ເລີຍ ເຊິ່ງຊ່ອງທາງສົ່ງກໍ່ຢູ່ໃນເນື້ອຫາ email ທີ່ເຂົາເຈົ້າສົ່ງມາພະຍາຫຍາມອ່ານໃຫ້ຄັກແນ່ . ແຕ່ຖ້າລໍຖ້າເກີນສອງມື້ແລ້ວຍັງບໍ່ມີຫຍັງຕອບກັບຈາກທາງ apple ກໍ່ສະແດງວ່າ!........ມັນລືມມມມມມມມ.....ມັນເບິ່ງຂ້າມເຮົາໄປ. ຖ້າເປັນແບບນີ້ກໍ່ສົ່ງ &lt;code&gt;mail&lt;/code&gt; ໄປດ່າມັນໄດ້ເລີຍ(ຊ່ວງ Covid-19 ລະບາດນີ້ຄົນລາວມັກດ່າກັນຢູ່ແລ້ວ!).&lt;/p&gt;

&lt;p&gt;ກັບເຂົ້າເລື່ອງດີກວ່າ.... &lt;br&gt;
ກ່ອນອື່ນເລີຍເຂົ້າໄປທີ່ &lt;a href="https://developer.apple.com/contact/topic/select"&gt;Contact Us&lt;/a&gt; ເລືອກຫົວຂໍ້ທີ່ເຮົາຕ້ອງການໃຫ້ທາງ apple support ເຊິ່ງໃນທີ່ນີ້ແມ່ນ &lt;code&gt;Membership and Account&lt;/code&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8UVM1g6---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2kbe4w19i65x0i52zsyf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8UVM1g6---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2kbe4w19i65x0i52zsyf.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
ເລືອກ &lt;code&gt;Program Enrollment&lt;/code&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_zNNyrji--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0mwkx3kc2v8rwykms8k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_zNNyrji--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b0mwkx3kc2v8rwykms8k.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
ແລ້ວກໍ່ຂຽນຂໍ້ຄວາມດ່າແບບສຸພາບໄປຫາທາງ apple ໄດ້ເລີຍ(ອົດກັ້ນໄວ້!!.....HOLDDDDDDD) ເນື້ອໃນກໍ່ຈະປະມານວ່າ "ເຮີຍໆ ຂ້ອຍຈ່າຍເງິນຄ່າສະໝັກໄປແລ້ວ ເປັນຫຍັງຄືຍັງບໍ່ສຳເລັດການ Enroll ປານນີ້!" (ເປັນພາສາອັງກິດເດີ ຂຽນພາສາລາວໄປເຂົາບໍ່ເບິ່ງແນ່ນອນ) ຫຼັງຈາກນັ້ນກໍ່ລໍຖ້າຕໍ່ໄປຈົນກວ່າມັນຈະຕອບກັບມາທາງ email ປະມານ 2 ມື້ຈຶ່ງຕອບກັບເດີ! ອົດທົນກັບ Platform ທີ່ຫຼິ້ນໂຕນີ້ແນ່(ເຈົ້າຂອງ blog ເປັນຄົນມີປົມເຈັບປວດກັບ apple ຮະຮະຮະຮ) ຖ້າຍັງບໍ່ມີການຕອບກັບກໍ່ສົ່ງໄປອີກເຊິ່ງສຸດທ້າຍດ້ວຍຈັນຍາບັນຂອງເຂົາເຈົ້າແລ້ວມັນຕ້ອງຕອບກັບມາແນ່ນອນ! ຮະຮະຮະຮະ. ຫຼັງຈາກນັ້ນເຮົາກໍ່ເຮັດຕາມຂັ້ນຕອນທີ່ມັນ mail ມາບອກ ແລະ ຖ້າທາງ apple ໄດ້ຂໍ້ມູນຄົບຖ້ວນແລ້ວກໍ່ຈະ Approve account ຂອງເຮົາໃຫ້ສາມາດເຂົ້າໃຊ້ງານ &lt;code&gt;app store connect&lt;/code&gt; ທີ່ເປັນບ່ອນບໍລິຫານຈັດການແອັບຕ່າງໆທີ່ເຮົາຕ້ອງການເອົາຂຶ້ນ store ນັ້ນເອງ! ເຢ້! ເຢ້! ເຢ້!.&lt;/p&gt;

&lt;p&gt;ຫຼັງຈາກຖືກ approve ແລ້ວເມື່ອເຂົ້າໄປເວັບ &lt;a href="https://developer.apple.com/"&gt;apple developer&lt;/a&gt; ໜ້າຕາກໍ່ຈະປະມານນີ້&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1bNdYahY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7i719x686y17znq9for2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1bNdYahY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7i719x686y17znq9for2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ຫຼັງຈາກນັ້ນກໍ່ໄປທີ່ &lt;a href="https://appstoreconnect.apple.com/"&gt;app store connect&lt;/a&gt; ແລະ sing in ດ້ວຍ &lt;code&gt;Apple ID&lt;/code&gt; ດຽວກັນກັບ &lt;code&gt;apple developer website&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ນີ້ຄືໜ້າຕາຂອງ &lt;code&gt;App store connect&lt;/code&gt; ທີ່ເຮົາຈະໃຊ້ໃນການບໍລິຫານຈັດການແອັບຕ່າງໆຂອງເຮົາໃນ apple store ບໍ່ວ່າຈະເປັນການ publish, update, remove ແອັບ.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Hi6up3i7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rdch0af6thewlz2vbz5t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Hi6up3i7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rdch0af6thewlz2vbz5t.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ເມື່ອຮອດນີ້ເຮົາກໍ່ສຳເລັດໃນການ &lt;code&gt;Register Apple Developer Program&lt;/code&gt; ຕໍ່ໄປກໍ່ເປັນການ upload app ທີ່ເຮົາພັດທະນາຂຶ້ນໄປທີ່ app store connect ເພື່ອ publish ໃຫ້ໂລກໄດ້ຮູ້ກັນແລ້ວວວ! ມາກັນໄດ້ເຄິ່ງທາງແລ້ວວ ສູ້ຕໍ່ໄປ! ສະຫາຍ!.&lt;/p&gt;

&lt;h1&gt;
  
  
  Register app bundle identifier
&lt;/h1&gt;

&lt;p&gt;ກ່ອນຈະ upload app ໄປທີ່ &lt;code&gt;app store connect&lt;/code&gt; ນ້ັນຕ້ອງໄປ register &lt;code&gt;app bundle identifier&lt;/code&gt; ກັນກ່ອນໂດຍໄປທີ &lt;a href="https://developer.apple.com/"&gt;apple developer&lt;/a&gt; ແລະ ເຂົ້າໄປເມນູ &lt;code&gt;Certificates, Identifiers &amp;amp; Profiles&lt;/code&gt; ໄປທີ່ &lt;code&gt;Identifiers&lt;/code&gt; ແລະ ກົດ &lt;code&gt;+&lt;/code&gt; ເພື່ອເພີ່ມ &lt;code&gt;App IDs&lt;/code&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_XAtNBSZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13lhfn7gce8lrqno49ru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_XAtNBSZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/13lhfn7gce8lrqno49ru.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
ຫຼັງຈາກນັ້ນໃສ່ຂໍ້ມູນ app bundle identifier ທີ່ໄດ້ມາຈາກ xcode ລົງໄປເຊິ່ງເຮົາສາມາດປ່ຽນໄດ້ຕາມຄວາມເໝາະສົມຂອງແອັບທີ່ພັດທະນານັ້ນໆ.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f8XL_5xD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tgta01pk7amzo4y4c64h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f8XL_5xD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tgta01pk7amzo4y4c64h.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Create app in &lt;code&gt;App Store connect&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;ຫຼັງຈາກທີ່ register app bundle ກັນແລ້ວຕໍ່ໄປກໍ່ເປັນການສ້າງ template app ຢູ່ໃນ &lt;code&gt;App Store connect&lt;/code&gt; ເພື່ອໃຊ້ສະແດງຂໍ້ມູນ ແລະ download app ຢູ່ໃນ apple store.&lt;br&gt;
ໄປທີ່ &lt;a href="https://appstoreconnect.apple.com/"&gt;app store connect&lt;/a&gt; ຖ້າຍັງບໍ່ sing in ກໍ່ sing in ດ້ວຍ apple ID ໃຫ້ຮຽບຮ້ອຍແລ້ວເລືອກ &lt;code&gt;My Apps&lt;/code&gt; ກົດປຸ່ມເຄື່ອງໝາຍ &lt;code&gt;+&lt;/code&gt; ເພື່ອເພີ່ມ app ໃນ App Store Connect ຂອງເຮົາ&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WGovuARa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kiy5ecvqgu006n6zwzp3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WGovuARa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kiy5ecvqgu006n6zwzp3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
ເມື່ອກົດແລ້ວຈະຂຶ້ນ form Dialog ໃຫ້ເຮົາປ້ອນຂໍ້ມູນກ່ຽວກັບແອັບທີ່ຈະສ້າງຂຶ້ນມາ ໂດຍ &lt;code&gt;Bundle ID&lt;/code&gt; ກໍ່ໃຫ້ເລືອກ &lt;code&gt;app bundle identifier&lt;/code&gt; ທີ່ເຮົາໄດ້ register ໄປກ່ອນໜ້ານີ້ ແລະ &lt;code&gt;SKU&lt;/code&gt; ກໍ່ອາດໃສ່ເປັນສ່ວນໃດສ່ວນໜຶ່ງຂອງ Bundle ID ກໍ່ໄດ້ ຕົວຢ່າງເຊົ່ນວ່າ &lt;code&gt;Bundle ID&lt;/code&gt; ແມ່ນ &lt;code&gt;com.example.app.gg&lt;/code&gt; &lt;code&gt;SKU&lt;/code&gt; ກໍ່ອາດໃສ່ເປັນ &lt;code&gt;com.example.app&lt;/code&gt; ແບບນີ້ກໍ່ໄດ້&lt;br&gt;
ແຕ່ຖ້າບໍ່ຢາກເອົາແບບທີ່ວ່າມາຂ້າງເທິງກໍ່ສາມາດໃສ່ໄປຕາມທີ່ໃຈມັກໄດ້ເລີຍ(ເອົາທີສະບາຍໃຈ ແລະ apple ສະບາຍໃຈ) ຫຼັງຈາກນັ້ນກໍ່ກົດ &lt;code&gt;Create&lt;/code&gt; ເພື່ອສ້າງແອັບຂອງເຮົາຂຶ້ນມາ.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9PAMdZ7G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1xmeknmzezdurvawtha3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9PAMdZ7G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1xmeknmzezdurvawtha3.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Fill App Information
&lt;/h1&gt;

&lt;p&gt;ຫຼັງຈາກ app store connect ສ້າງ template app ຂຶ້ນມາໃຫ້ເຮົາແລ້ວ ກໍ່ກົດເຂົ້າໄປທີ່ແອັບເປົ່າໆນັ້ນ. ຫຼັ້ງຈາກເຂົ້າມາແລ້ວສັງເກດທີ່ເມນູ &lt;code&gt;General&lt;/code&gt; &amp;gt; &lt;code&gt;App Information&lt;/code&gt; ໃຫ້ກົດເຂົ້າໄປ. ຕໍ່ຈາກນັ້ນກໍ່ເປັນການປ້ອນຂໍ້ມູນກ່ຽວກັບແອັບຂອງເຮົາບໍ່ວ່າຈະເປັນ rate ອາຍຸໃນການໃຊ້ແອັບ, &lt;code&gt;Category&lt;/code&gt; ຂອງແອບ, subtitle ຂອງແອບ ກໍ່ໃຫ້ໃສ່ໄປຕາມຄວາມເໝາະສົມຂອງແອບທີ່ເຮົາພັດທະນາຂຶ້ນມາ.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RaxBwRSj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vr1by38neo8jfewg5l8n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RaxBwRSj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vr1by38neo8jfewg5l8n.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ຈາກເມນູ &lt;code&gt;General&lt;/code&gt; &amp;gt; &lt;code&gt;Pricing and Availability&lt;/code&gt; ເປັນການກຳນົດວ່າຈະໃຫ້ແອັບເຮົານັ້ນ Free ຫຼື ເສຍເງິນ(ເທົ່າໃດ) ກໍ່ກຳນົດຕາມໃຈມັກໄດ້ເລີຍ.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lgv3hOwQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mm85wt02cnc8ayhifx1e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lgv3hOwQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mm85wt02cnc8ayhifx1e.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ສຸດທ້າຍທີ່ເມນູ &lt;code&gt;General&lt;/code&gt; &amp;gt; &lt;code&gt;App Privacy&lt;/code&gt; ເປັນການກຳນົດ privacy ຂອງແອັບເຮົາເຊິ່ງຈະມີການຖາມວ່າ ແອັບມີການເກັບຂໍ້ມູນຜູ້ໃຊ້ຫຼືບໍ່? ແລະ ມີການໃຫ້ໃສ່ link privacy ຂອງ app ໃນສ່ວນນີ້ແນະນຳເຂົ້າໄປ generate privacy ຢູ່ເວັບ &lt;a href="https://www.privacypolicygenerator.info/"&gt;Privacy Policy Generator&lt;/a&gt; ໄດ້ເລີຍຫຼັງຈາກ generate ຮຽບຮ້ອຍແລ້ວກໍ່ copy link ນັ້ນມາໃສ່ໄດ້ເລີຍ.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iL-e7Gra--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7vf15yb3oqe3d7aws6iu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iL-e7Gra--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7vf15yb3oqe3d7aws6iu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ເທົ່ານີ້ກໍ່ເປັນອັນສຳເລັດການໃສ່ຂໍ້ມູນເບື້ອງຕົ້ນໃຫ້ກັບແອັບເຮົາ. ເຊິ່ງຂໍ້ມູນພວກນີ້ຈະໄປສະແດງຢູ່ store ຂອງ apple ເພື່ອໃຫ້ຜູ້ໃຊ້ສາມາດກວດສອບໄດ້.&lt;/p&gt;

&lt;h1&gt;
  
  
  Archive app and upload to app store connect
&lt;/h1&gt;

&lt;p&gt;ໃນການເອົາແອັບ ios ຂຶ້ນ store ນັ້ນຕ້ອງ archive ແອັບນັ້ນເສຍກ່ອນແລ້ວຈຶ່ງ upload ຂຶ້ນ app store connect ໂດຍມີຂັ້ນຕອນຕ່າງໆດັ່ງນີ້.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ເປີດ project ດ້ວຍ Xcode ຂຶ້ນມາກ່ອນ&lt;/li&gt;
&lt;li&gt;ໄປທີ່ &lt;code&gt;Signing &amp;amp; Capabilities&lt;/code&gt; ຢູ່ທີ່ &lt;code&gt;Signing session&lt;/code&gt; ໃຫ້ເລືອກທີ່ &lt;code&gt;Team&lt;/code&gt; ແລະ ເລືອກ &lt;code&gt;Add and Account&lt;/code&gt; ເພື່ອເພີ່ມ Account ຜູ້ພັດທະນາ
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l9FnjqYS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/isdbaze5qbzo0d3xjpfz.png" alt="Alt Text"&gt;
ຫຼັງຈາກນັ້ນກໍ່ Sign in ດ້ວຍ Apple ID ທີ່ໄດ້ລົງທະບຽນເຂົ້າຮ່ວມ Apple developer program ກ່ອນໜ້ານີ້.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ltIRE9Wp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/15a6adag04v7x905hg8g.png" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;li&gt;ກຳນົດເລກ version ແລະ ເລກ build ຕາມທີ່ມັກໄດ້ເລີຍ. ໂດຍຕ້ອງຈົດຈຳຂຶ້ນໃຈໄວ້ວ່າໃນການ upload app ຂຶ້ນ store ນັ້ນຕ້ອງມາປ່ຽນເລກ version ຫຼື build ນີ້ສະເໝີບໍ່ດັ່ງນັ້ນ upload ເກີດຂໍ້ຜິດພາດແນ່ນອນ!.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WaUNP57B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3vcycd5pq5sel55ysom6.png" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;li&gt;ຖ້າຫາກແອັບມີການຂໍ້ permission ໃນການໃຊ້ງານ service ຂອງໂທລະສັບຕົວຢ່າງເຊັ່ນ GPS, Storage ...etc. ຕ້ອງຂຽນຄຳອະທິບາຍໃຫ້ຊັດເຈນວ່າເຮົາຈະຂໍ້ໄປເພື່ອຫຍັງບໍ່ດັງນັ້ນ app ຖືກ rejected ຕອນ review ແນ່ນອນເຕື່ອນກັນແລ້ວເດີ! ເກີດຄຳຖາມຂຶ້ນມາໃນຫົວແລ້ວຕ້ອງໄປກຳນົດຢູ່ໃສ່ຫວ່ະ? ທີ່ນີ້ເລີຍ &lt;code&gt;Info.plist&lt;/code&gt;
ຕົວຢ່າງໜ້າຕາຄຳອະທິບາຍການຂໍ້ permission ເຊິ່ງຈະຂຶ້ນເປັນ dialog ໃຫ້ user ກົດຍອມຮັບ
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
    &amp;lt;key&amp;gt;NSCameraUsageDescription&amp;lt;/key&amp;gt;
    &amp;lt;string&amp;gt;Can we access your camera in order to scan barcodes?&amp;lt;/string&amp;gt;
    &amp;lt;key&amp;gt;NSFaceIDUsageDescription&amp;lt;/key&amp;gt;
    &amp;lt;string&amp;gt;Please authorize to use the app&amp;lt;/string&amp;gt;
    &amp;lt;key&amp;gt;NSLocationAlwaysAndWhenInUseUsageDescription&amp;lt;/key&amp;gt;
    &amp;lt;string&amp;gt;This app needs access to location when open and in the background.&amp;lt;/string&amp;gt;
    &amp;lt;key&amp;gt;NSLocationAlwaysUsageDescription&amp;lt;/key&amp;gt;
    &amp;lt;string&amp;gt;This app needs access to location when in the background.&amp;lt;/string&amp;gt;
    &amp;lt;key&amp;gt;NSLocationWhenInUseUsageDescription&amp;lt;/key&amp;gt;
    &amp;lt;string&amp;gt;This app needs access to location when open.&amp;lt;/string&amp;gt;
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;ຈາກເມນູ run app ໃຫ້ກົດລືອກ &lt;code&gt;Any IOS Devices&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QFyDSLXN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z36jnbmrf2mjk14mxar1.png" alt="Alt Text"&gt;
ໄປທີ່ເມນູ &lt;code&gt;Product &amp;gt; Archive&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IMGSFC2B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lpe0aoapcdmafzr19ib2.png" alt="Alt Text"&gt;
ແລ້ວກໍ່ລໍຖ້າໃຫ້ xcode Archive app ໃຫ້ສຳເລັດ. ຖ້າແອັບໃຫຍ່ກໍ່ດົນນນນນນນເລີຍ.&lt;/li&gt;
&lt;li&gt;ຫຼັງຈາກ Archive ສຳເລັດແລ້ວ Xcode ຈະເປີດອີກໜ້າໜຶ່ງ ເຊິ່ງມັນຈະສະແດງລາຍການ Archive app ຕ່າງໆທີ່ເຮົາ Archive ຜ່ານໆມາ. ໃຫ້ເຮົາເລືອກ Archive app version ທີ່ຕ້ອງການ upload ຂຶ້ນ store ເມື່ອເລືອກແລ້ວກໍ່ກົດປຸ່ມ &lt;code&gt;Distribute App&lt;/code&gt; ແລະ ກໍ່ກົດ &lt;code&gt;next&lt;/code&gt; ແລະກໍ່ &lt;code&gt;next&lt;/code&gt; ເຊິ່ງລະຫວ່າງທາງກໍ່ຈະມີການຖາມນັ້ນນີ້ຄິດວ່າໜ້າຈະບໍ່ມີບັນຫາສຳລັບຜູ້ອ່ານຢູ່ແລ້ວຂ້າມໄປເລີຍ(ຄ້ານຂຽນລະອຽດຍ່ອຍໆ) ເມື່ອ next ໄປຈົນເຖິງຂັ້ນຕອນ upload ກໍ່ກົດ upload ໄປປປປປປ ແລະ ກໍ່ລໍຖ້າໃຫ້ສຳເລັດ. ເທົ່ານີ້ກໍເປັນອັນສິ້ນສຸດພິທີການແລ້ວ!!
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M5zGnR_4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wt2l34hgjlgbipuz71km.png" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Upload app success!&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AsrpM-xY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0d10u6oj2duev3osf7va.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AsrpM-xY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0d10u6oj2duev3osf7va.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ຈົບຂັ້ນຕອນການ Archive app.&lt;/p&gt;

&lt;h1&gt;
  
  
  Submit app to review
&lt;/h1&gt;

&lt;p&gt;ມາເທິງຂັ້ນຕອນສຸດທ້າຍແຕ່ບໍ່ທ້າຍສຸດ(ອ້າວ!) ກັບໄປທີ່ app store connect ກົດເຂົ້າໄປທີ່ app template ທີ່ສ້າງກັນມາກ່ອນໜ້ານີ້ຕໍ່ຈາກນັ້ນເລືອກທີ່ &lt;code&gt;x.x Prepare for Submission&lt;/code&gt; ທີ່ &lt;code&gt;IOS App&lt;/code&gt; section&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BFRxJd6W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d70ofr4ihpu5l35y1a33.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BFRxJd6W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d70ofr4ihpu5l35y1a33.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
ກໍ່ຈະມີຟອມໃຫ້ເຮົາໃຊ້ຂໍ້ມູນກ່ຽວກັບແອັບ version ທີ່ເຮົາຈະ publish ຂຶ້ນໄປນີ້. ໂດຍແບ່ງເປັນດັ່ງນີ້:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Screenshot&lt;/strong&gt; ກໍ່ຄືຮູບ &lt;code&gt;Screenshot&lt;/code&gt; ໜ້າຈໍຂະໜາດຕ່າງໆຂອງແອັບທີ່ເຮົາຢາກຈະ &lt;code&gt;present&lt;/code&gt; ໃຫ້ຜູ້ໃຊ້ເບິ່ງເພື່ອຕັດສິນໃຈກ່ອນດາວໂຫຼດແອັບຂອງເຮົາໄປໃຊ້ງານ ວ່າໜ້າຕາຈະເປັນແບບໃດ. ສຳລັບ &lt;code&gt;ios&lt;/code&gt; ແມ່ນຈະ &lt;code&gt;requested&lt;/code&gt; screenshot ຂະໜາດ &lt;code&gt;iPhone 6.5"&lt;/code&gt;, &lt;code&gt;iPhone 5.5"&lt;/code&gt;, &lt;code&gt;iPad Pro (3rd Gen) 12.9"&lt;/code&gt;, &lt;code&gt;iPad Pro (2nd Gen) 12.9"&lt;/code&gt; ເຊິ່ງແນະນຳໃຫ້ໃຊ້ &lt;code&gt;emurator&lt;/code&gt; ຂອງ ios ໃນການ &lt;code&gt;Screenshot&lt;/code&gt; ແຕ່ລະຂະໜາດ(ຖ້າມີເຄື່ອງແທ້ກໍ່ໃຊ້ເຄື່ອງແທ້ໄປເລີຍແຕ່ພໍດີເຈົ້າຂອງ blog ຈົນ ແຮ ແຮ) ເຊິ່ງສາມາດຫາລຸ້ນຂອງ device ແຕ່ລະຂະໜາດໄດ້ທີ່ &lt;a href="https://appradar.com/blog/ios-app-screenshot-sizes-and-guidelines-for-the-apple-app-store"&gt;screenshot size and guidelines for apple app store&lt;/a&gt; ບາງຄົນອາດຈະໃຊ້ພຽງຂະໜາດດຽວແລ້ວນຳໄປເຂົ້າ &lt;code&gt;Photoshope&lt;/code&gt; ເພື່ອດຶງຂະໜາດວິທີນີ້ສຳລັບເຈົ້າຂອງ blog ແລ້ວບໍ່ແນະນຳເພາະມັນຈະເຮັດໃຫ້ຮູບທີ່ອອກມາມັນຜິດຮູບ ບໍ່ງາມ ບໍ່ສົມສ່ວນ ຄືກັບ Screenshot ທີ່ມາຈາກຂະໜາດຈິງ. ເມື່ອໄດ້ຮູບມາແລ້ວກໍ່ດຶງລາກໄປໃສ່ໄດ້ເລີຍໂດຍແຍກໄປຕາມແຕ່ລະໜາດໜ້າຈໍ.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gcztnpk4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x6h4dtxlc7ea8iu55xzs.png" alt="Alt Text"&gt;
ນອກຈາກນີ້ແລ້ວຖ້າເຮົາມີຄວາມຈຳເປັນຢາກໃສ່ screenshort ຂະໜາດໃດໜຶ່ງກໍ່ສາມາດເຮັດໄດ້ໂດຍໄປທີ່ &lt;code&gt;View All Sizes in Media Manager&lt;/code&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ocps8zIx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ckldhg5w6oa266khhhzw.png" alt="Alt Text"&gt;
ເອົາຮູບ Screenshort ຂະໜາດໜ້າຈໍນັ້ນ upload ລົງໃສ່ເລີຍ&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ຄຳອະທິບາຍ ແລະ ຄົ້ນຫາແອັບ&lt;/strong&gt; ຕໍ່ມາກໍ່ເປັນການໃສ່ຄຳອະທິບາຍສັ້ນໆກ່ຽວກັບແອັບ version ດັ່ງກ່າວ, ພວກຄຳໂປຣໂມດ ແລະ ຄຳຄົ້ນຫາຂອງແອັບ ໃສ່ໄປຕາມມັກໄດ້ເລີຍ.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c5Jk7M-S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pajo4sym1ffrrob6d5b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c5Jk7M-S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4pajo4sym1ffrrob6d5b.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ເລືອກ build app version&lt;/strong&gt; ທີ່ເຮົາ archive ແລະ upload ຂຶ້ນມາກ່ອນໜ້ານີ້
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bmYJPrdo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lth7ygxh4aitfoqw05uk.png" alt="Alt Text"&gt;
ຖ້າຍັງບໍ່ຂຶ້ນຄືແບບຮູບເທິງນີ້ແມ່ນໃຫ້ລໍຖ້າໄປກ່ອນ ຫຼັງຈາກ upload archive ແລ້ວ ປະມານ 10 - 30 ນາທີຈຶ່ງຈະມີໃຫ້ເລືອກຢູ່ app store connect ເຊິ່ງຂຶ້ນກັບຄວາມຫຼິ້ຶນໂຕຂອງທາງ apple (ຢອກໆ).
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KS5G1PGS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/du3d6nwm3hykz4l16apd.png" alt="Alt Text"&gt;
ຈາກນັ້ນກໍ່ເລືອກ version ທີ່ຕ້ອງການເອົາຂຶ້ນ store.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ໃສ່ຂໍ້ມູນເພື່ອໃຫ້ທີມ review ສາມາດກວດສອບແອັບເຮົາໄດ້ງ່າຍຂຶ້ນ&lt;/strong&gt; ຂໍ້ມຸນຫຼັກໆກໍ່ຈະເປັນ email ຕິດຕໍ່ developer ຖ້າແອັບມີການ login ກໍ່ໃຫ້ username ແລະ password ເຂົາເຈົ້າໄປເລີຍ ຫຼື ນອກເໜືອຈາກນັ້ນກໍ່ຂຽນບອກທີມ Review ວ່າຕ້ອງເຮັດແນວໃດຈຶ່ງເຂົ້າໃຊ້ງານແອບເຮົາໄດ້ທັງໝົດ. ເວົ້າງ່າຍໆຖ້າບໍ່ໃຫ້ທີມ Review ຂອງ Apple ເຂົ້າໃຊ້ feature ທັງໝົດຂອງແອັບ ຕູກໍ່ບໍ່ໃຫ້ຜ່ານ! ຈົບເນາະ!.
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PcbGK5n8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vm457pqnmdsxyhs6nja7.png" alt="Alt Text"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;ຫຼັງຈາກໃສ່ຂໍ້ມູນທັງໝົດສຳເລັດ ແລະ ຖືກຕ້ອງແລ້ວກໍ່ &lt;code&gt;save&lt;/code&gt; ແລະ ກົດ &lt;code&gt;Submit for Review&lt;/code&gt; ສົ່ງໄປໄດ້ເລີຍຍຍຍຍຍຍຍ ແລະ ເທົ່ານີ້ກໍ່ເປັນອັນສຳເລັດແລ້ວວວວວວ! ເຢ້!.....&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gCZ03PF8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7jwj3natbkuxgbz8t7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gCZ03PF8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7jwj3natbkuxgbz8t7x.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
ຫຼັງຈາກນີ້ກໍ່ເປັນການ ລໍຖ້າ ແລະ ຖ້າ ປະມານ 2 ມື້ເຮົາຈຶ່ງເຂົ້າເບິ່ງວ່າແອັບຂອງເຮົາຖືກ approve ຫຼື reject ບໍ່ ຖ້າ aprove ກໍ່ດີໃຈນຳແອັບຂອງຜູ້ອ່ານຂຶ້ນ store ເປັນທີ່ຮຽບຮ້ອຍແລ້ວວວວ. ແຕ່ຖ້າ rejected ແມ່ນຕ້ອງນຳເບິ່ງວ່າເປັນຫຍັງຈຶງຖືກ reject ກໍ່ໃຫ້ຕັ້ງໃຈອ່ານ ແລະ ແກ້ໄຂ້ຕາມ &lt;code&gt;issue&lt;/code&gt; ທີ່ທາງທີມ Review ສົ່ງມາບອກ. ແກ້ຢູ່ແບບນັ້ນຈົນທຸກຢ່າງສຳເລັດດດດ ແລະ ແອັບຜ່ານຂຶ້ນ store ໄດ້ ໂຊກດີກໍ່ແລ້ວກັນ! ນອກຈາກນີ້ແລ້ວຍັງມີກໍລະນີທີ່ລໍຖ້າດົນເກີນໄປແຕ່ຍັງຢູ່ &lt;code&gt;in review&lt;/code&gt; ຢູ່ ແບບນີ້ກໍ່ຕ້ອງສົ່ງ mail ໄປດ່າທີມ Review ເລີຍວ່າ "ເປັນຫຍັງຄືຍັງບໍ່ review ແອັບໃຫ້ ປານນີ້!" ສຳລັບ store ຂອງ apple ນັກພັດທະນາຕ້ອງມີຄວາມພະຍາຫຍາມຫຼາຍແດ່ເພາະເປັນ Platform ຫຼິ້ນໂຕສູງງງ.....ແຕ່ກໍ່ເພື່ອຄຸນຄ່າສູງສຸດກັບຜູ້ໃຊ້ແອັບນັ້ນລະ! ອົດທົນສູ້ຊົນກັນໄປ.....&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ຮູບຖ້າແອັບຖືກ reject&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OqYircty--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6wxsrikabnk6g5ea6zi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OqYircty--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u6wxsrikabnk6g5ea6zi.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ຮູບຖ້າແອັບຜ່ານຂຶ້ນ store ຮຽບຮ້ອຍ&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lHtYEhFr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xu7iszv3gow2ri0uo3eu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lHtYEhFr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xu7iszv3gow2ri0uo3eu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Update App
&lt;/h1&gt;

&lt;p&gt;ໃນການ update app ນັ້ນກ່ອນອື່ນກໍ່ເຮັດຂັ້ນຕອນ &lt;code&gt;Archive app and upload to app store connect&lt;/code&gt; ເສຍກ່ອນຢ່າລືມປ່ຽນເລກ version ແລະ ເລກ build ຈາກນັ້ນກໍ່ &lt;code&gt;New app version&lt;/code&gt; ໂດຍເຂົ້າໄປທີ່ &lt;code&gt;app template&lt;/code&gt; ທີ່ຕ້ອງການ update ແລະ Click Icon ໝາຍ &lt;code&gt;+&lt;/code&gt; ດັງຮູບ&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WwBQT4jV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g3hgzqml2fbxk6mciq9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WwBQT4jV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g3hgzqml2fbxk6mciq9j.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ໃສ່ version ທີ່ເໝາະສົມຕາມໃຈມັກ&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4NnXoweK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8dmryji8ceftgsq2qzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4NnXoweK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8dmryji8ceftgsq2qzw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
ຈາກນັ້ນກໍ່ເຮັດຕາມຂັ້ນຕອນນ &lt;code&gt;Submit app to review&lt;/code&gt; ແຕ່ຕ່າງທີ່ເຮົາເລືອກແຕ່ build version app ທີ່ຕ້ອງການເອົາຂຶ້ນ store ເທົ່ານັ້ນບໍ່ໄດ້ປ້ອນຂໍ້ມູນອື່ນໆຄືນໃຫມ່ ຫຼັງຈາກນັ້ນກໍ່ &lt;code&gt;save&lt;/code&gt; ແລະ &lt;code&gt;submit for review&lt;/code&gt; ໄດ້ເລີຍ ຕໍ່ໄປກໍ່ມີແຕ່ລໍຖ້າໃຫ້ທີມ Review ເຮັດວຽກຂອງເຂົາເຈົ້າໄປ. ເທົ່ານີ້ກໍ່ສຳເລັດການ update app ແລ້ວວ.&lt;/p&gt;

&lt;h1&gt;
  
  
  ສະຫຼຸບ
&lt;/h1&gt;

&lt;p&gt;ບົດຄວາມກໍ່ຈະຍາວໆແດ່ແຕ່ຄິດວ່າຄົງເປັນປະໂຫຍດກັບ mobile dev ມືໃຫມ່ທີ່ຍັງບໍ່ເຄີຍເອົາແອບຂຶ້ນ store ເລີຍ. ເຊິ່ງປຽບທຽບກັບ playstore ແລ້ວນັ້ນ apple store ມີຂໍ້ກຳນົດ ແລະ ກົດລະບຽບທີ່ສູງສົມຄວນ. ເຊິ່ງນັ້ນກໍ່ເພື່ອຜົນປະໂຫຍດສູງສຸດຂອງຜູ້ໃຊ້ platform ເຂົາເຈົ້າເອງ ແຕ່ມັນກໍ່ເປັນສິ່ງທີ່ໜ້າລຳຄານ ແລະ ບໍ່ສະດວກສຳລັບ developer. ຫວັງວ່າບົດຄວາມນີ້ອາດມີປະໂຫຍດບໍ່ໜ້ອຍກໍ່ຫຼາຍ ໄວ້ພົບກັນກັບບົດຄວາມໃຫມ່ໃນໂອກາດໜ້າ &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Stay Safe&lt;/code&gt; ແລະ ປອດໄພຈາກ &lt;code&gt;Covid-19&lt;/code&gt; ທຸກໆຄົນເດີ ບາຍໆ....&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>apple</category>
      <category>xcode</category>
      <category>appstore</category>
    </item>
    <item>
      <title>ແກ້ບັນຫາເປີດ Xcode ios folder ຂອງ project flutter ບໍ່ຂຶ້ນ</title>
      <dc:creator>xang pheresakha</dc:creator>
      <pubDate>Thu, 22 Apr 2021 03:35:20 +0000</pubDate>
      <link>https://dev.to/xang555/xcode-ios-folder-project-flutter-1p2n</link>
      <guid>https://dev.to/xang555/xcode-ios-folder-project-flutter-1p2n</guid>
      <description>&lt;p&gt;ມີບາງເທື່ອເຮົາກໍ່ຈະພົບເຫັນຫາ ເປີດ folder ios ຂອງ project flutter ບໍ່ຂຶ້ນ ສາເຫດມາຈາກຫຼາຍຢ່າງ. ແຕ່ທີ່ຜູ້ຂຽນພົບຄື ກໍລະນີ້ທີ່ເຮົາ ປິດ project ຕອນກຳລັງ build ຫຼື ປິດ project ບໍ່ສົມບູນ. ເຮັດໃຫ້ໂຄງສ້າງ project ios ຜິດໄປຈາກເດີມ. ວິທີແກ້ກໍ່ງ່າໆ&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;ລົບ &lt;code&gt;Pods&lt;/code&gt;, &lt;code&gt;.symlinks&lt;/code&gt;, &lt;code&gt;Podfile&lt;/code&gt;, &lt;code&gt;Podfile.lock&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;ເຂົ້າໄປທີ່ &lt;code&gt;Runner.xcworkspace&lt;/code&gt; ແລ້ວລົບ &lt;code&gt;xcuserdata&lt;/code&gt; folder ອອກ&lt;/li&gt;
&lt;li&gt;ຈາກ &lt;code&gt;terminal&lt;/code&gt; run command &lt;code&gt;flutter clean&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;ອອກຈາກ ios folder ແລ້ວ ran &lt;code&gt;flutter pub get&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;ເຂົ້າໄປ ios folder ອີກຄັ້ງ ແລະ ran &lt;code&gt;pod update&lt;/code&gt; ຫຼື &lt;code&gt;pod install&lt;/code&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ເປັນອັນຈົບພິທີຫຼັງຈາກນັ້ນກໍ່ລອງເປີດດ້ວຍ xcode ອີກຄັ້ງຖ້າບໍ່ມີຫຍັງຜິດພາດກໍ່ສາມາດເປີດຂຶ້ນໄດ້ແລ້ວ ແຕ່ຖ້າເປີດບໍ່ຂຶ້ນກໍ່ໂຕໃຜໂຕມັນ ຮະຮະຮຮະຮະ&lt;/p&gt;

</description>
    </item>
    <item>
      <title>ການໃຊ້ງານ Serial.printf() function ໃນ PlatformIO
</title>
      <dc:creator>xang pheresakha</dc:creator>
      <pubDate>Wed, 31 Mar 2021 09:46:55 +0000</pubDate>
      <link>https://dev.to/xang555/serial-printf-function-platformio-3kj</link>
      <guid>https://dev.to/xang555/serial-printf-function-platformio-3kj</guid>
      <description>&lt;p&gt;ການພັດທະນາ &lt;code&gt;program&lt;/code&gt; ໃນ &lt;code&gt;Arduino platform&lt;/code&gt; ສິ່ງທີ່ຂາດບໍ່ໄດ້ຄືການ debug ເບິ່ງຄ່າຕ່າງໆ. ບໍ່ວ່າຈະເປັນ &lt;code&gt;sensor&lt;/code&gt;, &lt;code&gt;ການຄຳນວນ&lt;/code&gt; ເປັນຕົ້ນ ແລະ ສິ່ງທີ່ເຮົາໃຊ້ສະແດງຄ່າພວກນັ້ນກໍ່ຄື &lt;code&gt;Serial&lt;/code&gt; ນັ້ນເອງ.&lt;/p&gt;

&lt;h1&gt;
  
  
  ຫ້າມ serial print ຂໍ້ຄວາມ ໄປ main memory ເດັດຂາດດດ ມັນເປັນບາບ!
&lt;/h1&gt;

&lt;p&gt;ຫຼາຍຄົນອາດໃຊ້ &lt;code&gt;serial.print("message")&lt;/code&gt; ເຊິ່ງມັນກໍ່ບໍ່ມີບັນຫາຫຍັງເຮັດວຽກໄດ້ປົກກະຕິແຕ່ວ່າມັນຈະມີບັນຫາຖ້າ program ທີ່ເຮົາກຳລັງພັດທະນານັ້ນເປັນ project ໃຫຍ່ມີການເກັບຂໍ້ມູນໄວ້ memory ຂອງ mcu ເປັນຈຳນວນຫຼາຍເພື່ອໃຊ້ໃນການຄຳນວນ ຫຼື ຮັບ response ຈາກ server ແລະ board ທີ່ເຮົາເລືອກໃຊ້ມີຄວາມຈຳໜ້ອຍຍຍຍ 2kb ຫຍັງກໍ່ວ່າກັນໄປ ເຊິ່ງກໍລະນີນີ້ອາດເຮັດໃຫ້ເກີດ memory overflow ໄດ້. ສະນັ້ນປ່ຽນມາໃຊ້ຄວາມຈຳອື່ນແທນນັ້ນກໍ່ຄື &lt;code&gt;flash memory&lt;/code&gt; ງ່າຍໆພຽງແຕ່ໃຊ້ &lt;code&gt;F("message")&lt;/code&gt; ແບບນີ້:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ພຽງເທົ່ານີ້ message ຕ່າງໆຂອງ Serial ກໍ່ຈະປ່ຽນໄປໃຊ້ flash memory ແທນແລ້ວວ ຫຼຸດການໃຊ້ main memory ໄປໄດ້ຫຼາຍເລີຍ!&lt;/p&gt;

&lt;h1&gt;
  
  
  ເພີ່ມ Serial.printf() ເພື່ອຄວາມຫຼໍ່!
&lt;/h1&gt;

&lt;p&gt;ຫຼາຍຄົນເຄີຍຂຽນຫຼາຍພາສາ ແລະ ມັກຈະມີ &lt;code&gt;printf&lt;/code&gt; ໄວ້ໃຫ້ເຮົາ formate message ໃຫ້ອ່ານງ່າຍ ສະນັ້ນເພື່ອຄວາມຫຼໍໍ່ເຮົາກໍ່ເລີຍຕ້ອງການເຮັດແບບນີ້ກັບ Serial class ຂອງ arduino ເຊິ່ງໂດຍປົກກະຕິແລ້ວວ ບໍ່ມີ build-in ມາໃຫ້. ໃນການເພີ່ມເຮົາກໍ່ທຳການແກ້ໄຂ້ &lt;code&gt;Print.h&lt;/code&gt; ທີ່ຢູ່ໃນ arduino platform ຫຼື platformIO  ໄດ້ເລີຍ.&lt;br&gt;
ສຳລັບ &lt;code&gt;PlatformIO&lt;/code&gt; ເຂົ້າໄປທີ່ &lt;code&gt;~/.platformio/packages/framework-arduino-avr/cores/arduino&lt;/code&gt; ແລະ ຫາ &lt;code&gt;Print.h&lt;/code&gt; ເພື່ອແກ້ໄຂ້. ໂດຍການເພີ່ມ code ຕໍ່ໄປນີ້ຕໍ່ທ້າຍພາຍໃນ public section&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include &amp;lt;stdarg.h&amp;gt;
#define PRINTF_BUF 80 // define the tmp buffer size (change if desired)
&lt;/span&gt;   &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...)&lt;/span&gt;
   &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;PRINTF_BUF&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
   &lt;span class="kt"&gt;va_list&lt;/span&gt; &lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;va_start&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;vsnprintf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// emulate cooked mode for newlines&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sc"&gt;'\n'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                        &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'\r'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="n"&gt;va_end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="cp"&gt;#ifdef F // check to see if F() macro is available
&lt;/span&gt;   &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="n"&gt;__FlashStringHelper&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...)&lt;/span&gt;
   &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;PRINTF_BUF&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
   &lt;span class="kt"&gt;va_list&lt;/span&gt; &lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="n"&gt;va_start&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="cp"&gt;#ifdef __AVR__
&lt;/span&gt;        &lt;span class="n"&gt;vsnprintf_P&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// progmem for AVR&lt;/span&gt;
&lt;span class="cp"&gt;#else
&lt;/span&gt;        &lt;span class="n"&gt;vsnprintf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;format&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// for the rest of the world&lt;/span&gt;
&lt;span class="cp"&gt;#endif
&lt;/span&gt;        &lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="n"&gt;buf&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;// emulate cooked mode for newlines&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sc"&gt;'\n'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                        &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'\r'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
                &lt;span class="n"&gt;write&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="n"&gt;va_end&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="cp"&gt;#endif
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ພຽງເທົ່ານີ້ເຮົາກໍ່ສາມາດໃຊ້ງານ &lt;code&gt;printf&lt;/code&gt; ໄດ້ແລ້ວ&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;F&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%s&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;mst&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mac&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ຂໍ້ຈົບບົດຄວາມໄວ້ເທົ່ານີ້ ໄວ້ມີໂອກາດມາແຊກັນໃຫມ່!&lt;/p&gt;

</description>
      <category>platformio</category>
      <category>serial</category>
      <category>printf</category>
      <category>android</category>
    </item>
  </channel>
</rss>
