iOS 開發流程筆記

n342 9年前發布 | 61K 次閱讀 IOS iOS開發 移動開發

  • 證書知識及準備工作
  • 幾種開發者帳號區別
  • 真機調試流程
  • 內測發布流程
  • Appstore 上架流程
  • </ul>

    目錄導航

    • 證書知識及準備工作

      • 基礎問題答疑

        • 什么是證書
        • 什么時候需要證書
        • 證書如何獲得
        • 如何對代碼進行簽名
        • 我生成的私鑰如何共享給團隊成員
        • </ul> </li>

        • 各流程中證書的需求情況

          • 模擬器調試
          • 真機調試
          • 打包和發布
          • 消息推送后端服務
          • </ul> </li>

          • 開發中常見的證書及相關文件介紹

            • CSR(certificate request) 文件
            • 開發者證書
            • apns(Apple Push Notification Service) 證書
            • p12(Personal Information Exchange) 證書
            • 描述文件(Provisioning Profiles)
            • </ul> </li>

            • 附錄1: 開發準備相關的網址
            • </ul> </li>

            • 幾種開發者帳號區別

              • 關鍵區別
              • </ul> </li>

              • 真機調試流程

                • 基本概念
                • 條件和流程
                • </ul> </li>

                • 內測發布流程

                  • 基本概念
                  • 實現條件
                  • 幾種常見的分發途徑
                  • 附錄2: 常見分發渠道及工具地址
                  • </ul> </li>

                  • Appstore 上架流程

                    • 附錄3: App store最新審核標準(2015.3)
                    • </ul> </li> </ul>

                      證書知識及準備工作

                      基礎問題答疑

                      什么是證書

                      由 apple 官方頒發, 用以證明開發者身份的特殊文件, 在 iOS 開發中主要用于代碼簽名, 保障 iOS 生態的健康安全, 分為開發者證書和發布者證書

                      什么時候需要證書

                      只有在本機模擬器調試時無需代碼簽名, 當 App 需要在真機運行和發布時需要使用相應證書進行簽名

                      證書如何獲得

                      首先需要擁有相應權限的開發者帳號, 通過在本地生成配對的密鑰, 向 provisioning portal 提交公鑰后換取, 后續證書在使用時會驗證本地私鑰

                      如何對代碼進行簽名

                      在 xcode 中, 使用描述文件(provision profile 包含調試者證書, 授權設備清單, 應用ID), 在Build Settings中選擇存于Keychain Access中的證書文件設置調試和發布任務時的代碼簽名

                      我生成的私鑰如何共享給團隊成員

                      在Keychain Access中找到導入的證書, 右擊導出為包含私鑰的 Personal Information Exchange(.p12)文件(導出時可以創建密碼), 團隊成員再導入p12證書后就完整包含了證書和私鑰

                      各流程中證書的需求情況

                      模擬器調試

                      不需要

                      真機調試

                      • 描述文件(Provisioning Profiles)

                        </li>

                      • 開發者證書(ios_development.cer)

                        </li> </ul>

                        打包和發布

                        • 描述文件(Provisioning Profiles)

                          </li>

                        • 可用于發布的開發者證書(ios_distribution.cer)

                          </li> </ul>

                          消息推送后端服務

                          • apns 證書
                          • </ul>

                            開發中常見的證書及相關文件介紹

                            CSR(certificate request) 文件

                            用于換取證書的公鑰文件, 實際是在本地基于RSA加密得到配對的密鑰, 私鑰存于Keychain Access用于簽名, 公鑰作為換取證書的憑證

                            生成方法

                            • OSX 系統自帶的 Keychain Access

                              • 選擇 "Request a Certificate From a Certificate Authority…"

                                </li>

                              • 輸入 email 等信息后保存為.certSigningRequest文件

                                </li> </ul> </li>

                              • 命令行下使用 openssl 生成

                                </li> </ul>

                                $ openssl genrsa -out private.key 2048
                                $ openssl req -new -sha256 -key private.key -out my.certSigningRequest

                                開發者證書

                                由 apple 官方頒發, 用來證明開發者資格的證書文件, 分開發(ios_development.cer)和發布(ios_distribution.cer)兩種

                                cer證書跟開發機(私鑰)綁定只能在擁有私鑰的機器上使用, 如果要遷移機器需要導出為p12文件

                                生成方法

                                開發者中心 "certificates" 面板中添加certificate并上傳剛剛生成的CSR文件, 獲取ios_development.cer

                                apns(Apple Push Notification Service) 證書

                                用于服務端消息推送, 類似 ssl 證書使用, 和 App 端的開發打包沒有關系

                                生成方法

                                開發者中心 "Identifiers" 面板中添加App ID并上傳剛剛生成的CSR文件, 獲取aps_production.cer

                                p12(Personal Information Exchange) 證書

                                p12證書實際是包含了cer證書及私鑰信息, 可以分發給團隊成員

                                生成方法

                                Keychain Access 中找到已經導入的cer證書, 點右鍵導出為p12格式

                                描述文件(Provisioning Profiles)

                                包含certificateappIDdevices id的文件用于在 xcode 調試打包時提供授權的配置信息

                                生成方法

                                • 開發者中心 "Provisioning Profiles" 面板中添加iOS Provisioning Profiles并上傳剛剛生成的CSR文件, 獲取.mobileprovision文件

                                  </li>

                                • 在 xcode 登錄開發者帳號后可以連接開發者中心獲取

                                  </li> </ul>

                                  附錄1: 開發準備相關的網址

                                  開發者中心 https://developer.apple.com/devcenter/ios/index.action

                                  iOS 描述管理(配置證書、描述文件、推送服務) https://developer.apple.com/ios/manage/overview/index.action

                                  切換團隊(在 web 界面上死活沒有找到) https://developer.apple.com/account/selectTeam.action

                                  iOS 上架 Appstore http://itunesconnect.apple.com/

                                  </blockquote>

                                  幾種開發者帳號區別

                                  詳見: https://developer.apple.com/programs/start/ios/

                                  </blockquote>

                                  • 個人(individual) $99/year
                                  • 公司(company) $99/year
                                  • 企業(enterprise) $299/year
                                  • 大學(University) free
                                  • </ul>

                                    關鍵區別

                                    • 個人帳號可以真機調試, 發布 appstore, 每年 最多為 100臺設備分發
                                    • 公司帳號和個人帳號類似, 只有這兩種帳號可以發布 appstore, 主要特權是可以添加多個開發者子賬號, 但只允許主賬號提交, 發布等操作, 在協同開發時比較靈活, 可以各自管理授權設備等
                                    • 企業帳號無法用于 appstore 發布, 但可以不通過 appstore 發布任意 iphone 都可以安裝的應用
                                    • 大學帳號不能發布 appstore, 主要擁有真機調試的權限
                                    • </ul>

                                      真機調試流程

                                      基本概念

                                      真機調試指 mac 連上 iphone, xcode 可以直接以這臺 iphone 設備為 build target, 能在 iphone 里執行編譯結果

                                      條件和流程

                                      分為擁有獨立開發者帳號(也包括公司帳號或企業帳號成員)和共享開發者帳號兩種情況

                                      擁有獨立開發者帳號

                                      • 1. 在 provisioning portal 新建應用, 配置授權設備等
                                      • 2. 開發機上導入證書
                                      • 3. 在 xcode 上登錄開發者帳號, 不需要準備描述文件, xcode 會自動生成(如果是公司帳號可以自動生成iOS Team Provisioning Profile)
                                      • </ul>

                                        共享開發者帳號

                                        如果無法在 xcode 登錄一個開發者帳號, 也可以通過他人對你手機和應用 id 的授權, 得到.mobileprovision描述文件再導入其含私鑰的證書(p12) 即可, 具體步驟如下:

                                        • 1. 獲得手機的udid(可以連上 mac, 在 itunes 中查看)
                                        • 2. 告知對方udid(用以設備授權) 和 應用 id
                                        • 3. 得到對方生成的證書和描述文件后, 先導入p12證書, 再雙擊mobileprovision文件
                                        • 4. 連接手機, 在 xcode 中選擇 build target 為已連接的手機
                                        • </ul>

                                          對剛入門的個人開發者而言, 可以在淘寶搜iOS真機調試花幾元購買一份授權, 包含(p12證書 和.mobileprovision描述文件)

                                          </blockquote>

                                          內測發布流程

                                          基本概念

                                          當 App 開發進行到一定程度, 需要更多的人參與測試, 需要謀求一種方式方便應用能安裝進更多的設備中

                                          實現條件

                                          進行內測發布主要的關鍵點是:

                                          • 1. 是如何將應用打包為.ipa
                                          • </ul>

                                            xcode6 以后, 個人/公司帳號無法對應用打包為.ipa, 要么用 xcode5 打包要么擁有企業帳號級別的授權

                                            • 2. 設備需不需要授權
                                            • </ul>

                                              個人/公司帳號權限只有在TestFlight/ 越獄渠道下完成不授權安裝; 企業帳號授權可以在ad-hoc/in-house渠道下分發, 完成不授權設備安裝

                                              幾種常見的分發途徑

 本文由用戶 n342 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!