AIR for IOS開發問題小結

来源:http://www.cnblogs.com/shouce/archive/2016/03/09/5256648.html
-Advertisement-
Play Games

昨天終於成功地向APP STORE提交了應用,個人感覺用AIR做IOS開發就是個坑啊。出了問題之後,問蘋果的技術支持,人家說“對於非XCODE環境下開發及發佈所造成的問題我們在資料庫中無法找到相應的解決方案”。那問adobe的技術支持吧,“你按照開發者中心的教程執行了嗎?”“是的”“你能成功生成IP


 昨天終於成功地向APP STORE提交了應用,個人感覺用AIR做IOS開發就是個坑啊。出了問題之後,問蘋果的技術支持,人家說“對於非XCODE環境下開發及發佈所造成的問題我們在資料庫中無法找到相應的解決方案”。那問adobe的技術支持吧,“你按照開發者中心的教程執行了嗎?”“是的”“你能成功生成IPA文件嗎?”“是的”“OK,那麼你的問題應該去找蘋果的技術支持”。。。。我++,簡直有種在天朝上訪被踢皮球的感覺。

    所以,我將我遇到的問題在這裡一一記錄下來,以便備忘及幫助到同樣適用AIR開發IOS的同學。

   

    1.我們清楚,在IOS開發中,有這麼幾種文件:

    1-1.證書簽名請求CSR文件,在MAC下生成

    1-2.IOS開發者/分發證書*.cer文件,通過上傳CSR到IOS開發者中心後下載生成

    1-3.P12格式的證書文件,通過從IOS開發者中心下載cer文件,然後在MAC下轉換格式導出,這個文件決定了你在FB(flash builder)中能否生成IPA文件

    1-4.配置概要文件 *.mobileprovision,關聯了設備的UDID,在IOS開發者中心創建並下載。這個文件決定了在你的開發過程中產生的IPA文件能夠運行在哪些設備上

       而最終在FB中生成IPA所需要的文件為1-3和1-4,我之前很SB地認為這2個文件之間沒有什麼直接關係,但是實際上一旦你在IOS開發者中心重新替換了CSR文件之後,你的原有的配置概要文件就會全部失效,需要重新創建並下載。在替換了CSR文件之後沒有重新創建並下載mobileprovision文件,這是我所犯的第1個錯誤

 

    2.在adobe開發者中心所提供的教程中,有如下的原文“將生成CSR以獲得IOS開發者/分發證書”“根據需要生成IOS開發者證書或IOS分發證書”。它的意思是,cer、p12、mobileprovision文件均有2種類別,一種對應的是開發階段,一種對應的是分發(即發佈)階段(distribute )。即,我要在設備上進行調試或運行我的程式,在生成IPA時需要選擇由開發者證書cer文件所導出的P12文件和在IOS開發者中心創建並下載的的用於開發的mobileprovision文件;而當我導出發行版IPA需要提交到APP STORE時,這時需要選擇由分發者證書導出的P12文件和用於分發的mobileprovision文件。在導出發行版時忘了更新P12和mobileprovision文件,這是我犯的第2個錯誤

 

    3.承接2,在導出用於分發的P12證書時,需要註意一個細節,這個細節步驟是在導出用於開發的P12證書時所沒有的。在導出分發P12證書之前,需要先在開發者中心創建分發的cer文件那個界面里點擊下方的鏈接下載一個WADR名稱開頭的cer文件,然後將這個文件在MAC下添加進鑰匙串,這個文件中會在你導出P12文件時附帶上蘋果的簽名。如果你沒有這個步驟直接選擇導出P12,將無法通過提交APP時的證書簽名驗證。在導出用於分發的P12證書之前沒有下載WADR並添加進鑰匙串,這是我犯的第3個錯誤

 

    4.在1中,我提到“替換CSR文件”,什麼情況下需要我們替換CSR文件呢?這涉及到一個非常隱晦非常微妙的問題。在我的發佈過程中,遇到了這樣一個情景:在設備上可以調試及運行,但是發佈後提交應用時一直無法通過應用驗證,並且保證前面所提到的1、2、3都沒有問題,讓人百思不得騎姐。最後發現問題所在:在生成CSR文件時,除了填寫開發者賬號郵箱之外,還需要填寫一個常用名稱(common name),而這個名稱必須和你在申請IOS開發者賬號時所填寫的名稱一致。而坑爹的是,這個一致性要求僅僅在提交APP時才進行驗證,即在之前在開發階段,即使名稱是亂填寫的,也不會影響到你在設備上調試或運行程式。我最後發現問題所在為我在生成CSR文件時所輸入的名稱對比和證書中顯示的名稱在First Name和Last Name之間少了一個空格。。。。(網上還有一種說法是國外程式員的驗證方式是Last Name在前First Name在後)在生成CSR文件時填寫的常用名稱和IOS開發者賬號中的名稱不一致,這是我犯的第4個錯誤


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 許可權 說明 ACCESS_NETWORK_STATE 允許應用程式獲取網路狀態信息的許可權 ACCESS_WIFI_STATE 允許應用程式獲取 Wi-Fi 網路狀態的許可權 BATTERY_STATE 允許應用程式獲取電池專題信息的許可權 BLUETOOTH 允許應用程式連接匹配的藍牙設備的許可權 BLU
  • 在一些項目中,我們需要自定義自己的UIButton,使Button上面同時具有圖片和文字描述,實現自定義UIButton的圖文混排。 首先我們需要定義一個繼承自UIButton的類,同時實現自己的initWithFrame:方法。方法聲明在這個類的頭文件中。 self = [super initWi
  • category與associative作為objective c的擴展機制的兩個特性,category即類型,可以通過它來擴展方法;associative,可以通過它來擴展屬性;在iOS開發中,可能category比較常見,相對的associative,就用的比較少,要用它必須使用的頭文件,然後就
  • 經過前兩篇的介紹,我們瞭解瞭如何使用RoboGuice方便的為我們註入需要的對象,這篇將著重說明原理。 一.Guice與RoboGuice Guise是Google開發的一個輕量級的依賴註入框架,主要針對Java使用的。 RoboGuice是基於Guice庫開發,目的為Android提供一套簡單易用
  • 1.在java上面,public native void +方法名(""); 2.然後載入你需要的底層so文件system.loadLibrary("so文件名不能加尾碼") 3.然後在你需要調用native方法的時候,直接當做普通的方法調用 接下來就是在底層C或者C++上面的實現的 1.找到你項目
  • 代碼: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. //寫法比較新奇 UIColor *bgColor =[UIColor redColor]; self.
  • 具體命令如下(在控制台輸入如下命令): lipo -create 其中一個要合併的靜態庫 另一個要合併的靜態庫 -output 合併後的靜態庫
  • 來自:http://www.cnblogs.com/nikyxxx/archive/2012/06/15/2551390.html 三個屬性都用來適應視圖的水平或垂直大小,一個以視圖的內容或尺寸為基礎的佈局比精確地指定視圖範圍更加方便。 1)fill_parent 設置一個構件的佈局為fill_pa
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...