cordova使用入門教程

Apache Cordova是一個(gè)開源的移動(dòng)開發(fā)框架办陷。允許你用標(biāo)準(zhǔn)的web技術(shù)-HTML5,CSS3和JavaScript做跨平臺(tái)開發(fā)貌夕。 應(yīng)用在每個(gè)平臺(tái)的具體執(zhí)行被封裝了起來,并依靠符合標(biāo)準(zhǔn)的API綁定去訪問每個(gè)設(shè)備的功能民镜,比如說:傳感器啡专、數(shù)據(jù)、網(wǎng)絡(luò)狀態(tài)等制圈。如果你想做app而又不想請(qǐng)?jiān)こ處熋峭敲催@是一個(gè)不錯(cuò)的選擇,話不多說我們接下來開啟cordova學(xué)習(xí)之路

1.首先你需要安裝一個(gè)node https://nodejs.org/en/download/ node下載地址 下載安裝一下就可以了

查看node版本

    node -v
image.png

現(xiàn)在node已經(jīng)安裝成功了

2.接下來需要安裝cordova,打開命令行輸入

   npm install -g cordova

安裝完輸入

    cordova -v

現(xiàn)在cordova已經(jīng)安裝成功了

3.安裝完cordova就可以開始你的第一個(gè)項(xiàng)目了,找到你的工作文件夾鲸鹦,接下來創(chuàng)建一個(gè) 名字為testdemo的文件夾慧库,項(xiàng)目名字為TestDemo,包名為com.yourname.testdemo的Cordova項(xiàng)目,然后進(jìn)入到項(xiàng)目

    cordova create testdemo com.yourname.testdemo TestDemo
    cd testdemo

4.這個(gè)時(shí)候你的項(xiàng)目已經(jīng)創(chuàng)建完畢馋嗜,你需要安裝ios和android平臺(tái)

安裝ios平臺(tái)齐板,你需要一個(gè)xcode,之后的打包也是需要的

   cordova platform add ios

安裝android平臺(tái)

cordova platform add android
//這里安裝平臺(tái)的時(shí)候是安裝的最新平臺(tái)  最新平臺(tái)修改了目錄結(jié)構(gòu) 但是大部分插件都沒有修改 所以我建議大家安裝6.3.0以下的平臺(tái)
cordova platform add android@6.2.3 用來指定平臺(tái)版本

5.添加安卓環(huán)境 需要安裝java jdk 和安卓SDK

JAVA JDK

  1. 安裝[JAVA JDK]
    地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html)
    我們可以看到下方有兩個(gè)JAVA JDK 一個(gè)是是最新版的 一個(gè)不是最新的
    我安裝了最新版的以后(并且配置了環(huán)境變量 在cordova build android的時(shí)候報(bào)了錯(cuò)誤葛菇,大概意思是版本不支持 我卸載了最新版的 下載了第二個(gè)也就是 Java SE 8u171/8u172 然后就可以了 這里有個(gè)小坑)
    image.png

安裝完成以后我們打開命令行輸入JAVAC 可以看到如下圖 不是內(nèi)部命令 是因?yàn)槲覀儧]配置環(huán)境變量


1524300052(1).png
  1. 打開我的電腦--屬性--高級(jí)--環(huán)境變量
    (1).新建系統(tǒng)變量JAVA_HOME甘磨,變量名:JAVA_HOME ,變量值:C:\Program Files\Java\jdk1.8.0_171
    (2).新建系統(tǒng)變量CLASSPATH眯停,變量名:CLASSPATH 济舆,變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
    (3).選擇“系統(tǒng)變量”中變量名為“Path”的環(huán)境變量,雙擊該變量莺债,在原來變量后追加 %JAVA_HOME%\bin
    (4).選擇“系統(tǒng)變量”中變量名為“Path”的環(huán)境變量滋觉,雙擊該變量,在原來變量后追加 %JAVA_HOME%\jre\bin
  2. 我們?cè)俅未蜷_命令行輸入“JAVAC”九府,輸出幫助信息即為配置正確椎瘟。如圖:


    1524300487(1).png

ANDROID SDK

  1. 安裝[ANDROID SDK]
    下載Android Studio并安裝(官方文檔說 僅安裝 Android Stand-alone SDK 也可。但是我試過并不可以侄旬,會(huì)出下面的錯(cuò)誤 說你沒有 gradle)
    T$FK51TG57I(PYG5P7A4C{B.png

    打開android studio 點(diǎn)擊file/settings/appearance&behavior/system settings/android SDK 在這里可以看到你的SDK地址 把它復(fù)制下來
    1524377624(1).png

    2 打開我的電腦--屬性--高級(jí)--環(huán)境變量
    新建系統(tǒng)變量ANDROID_HOME肺蔚,變量名:ANDROID_HOME ,變量值:你剛才復(fù)制的內(nèi)容
    在path環(huán)境變量加追加:
    %ANDROID_HOME%\tools
    %ANDROID_HOME%\platform-tools
    3 打開命令行 輸入adb 出來信息就可以了
    PS:我第一次運(yùn)行cordova build android 可以看到正在下載gradle 如下圖
    1524375663(1).png

    PS:然后我安裝的平臺(tái)是 7.0.0 可以看到需要android-26支持 但是我安裝的27
    1524378052(1).png

    image.png

    這個(gè)時(shí)候我們?nèi)绻虬脑捑蜁?huì)報(bào)錯(cuò)了
    1524378231(1).png

    還有就是我們現(xiàn)在用安卓7.0.0的平臺(tái)的話 有些插件是安裝不了的 如果需要安裝插件的話 就要降低android版本 我這里用的是android6.2.3 需要的是android-25
    那么我們就去下載一下SDK吧 把你需要的勾選上 然后點(diǎn)擊OK就可以了
    1524378428(1).png

    PS:如果你安裝了androidstuido 還是包gradle的錯(cuò)誤那你需要手動(dòng)去下載
    gradle-x.x-bin.zip (x.x代表版本)
    根據(jù)需要下載某一版本
    地址:
    (https://services.gradle.org/distributions)
    添加環(huán)境變量
    PATH=D:\gradle-x.x\bin

關(guān)閉cmd或powershell窗口
重新打開儡羔,輸入gradle -v宣羊,查看gradle安裝成功與否

6. 查看平臺(tái)璧诵,刪除平臺(tái)

cordova platforms list
cordova platform rm 平臺(tái)名字

7.刪除插件 安裝插件

   cordova plugin rm 插件名字
   cordova plugin add 插件名字

8. QQ登錄 微信登錄 支付寶支付 crosswalk插件 以下插件是我經(jīng)常用到的

     //YOUR_QQ_APPID, YOUR_WECHAT_APPID, your AppId 是你在QQ互聯(lián) 微信開放平臺(tái) 以及支付寶申請(qǐng)的appid
     1.QQ登錄 cordova plugin add cordova-plugin-qqsdk --variable QQ_APP_ID=YOUR_QQ_APPID
     2.微信登錄 cordova plugin add cordova-plugin-wechat --variable wechatappid=YOUR_WECHAT_APPID
     3.支付寶支付 cordova plugin add cordova-plugin-alipay-v2 --variable APP_ID=[your AppId]
     4.crosswalk插件 cordova plugin add cordova-plugin-crosswalk-webview   
     5.在android目錄下assects目錄下添加一個(gè)沒有后綴名的文件 名字是xwalk-command-line  內(nèi)容是xwalk --ignore-gpu-blacklist
     6.在打包的時(shí)候 如果兩個(gè)程序包名一樣 不安裝cordova-plugin-crosswalk-webview   插件的APK是不能覆蓋安裝有此插件的APK
     7.版本插件 cordova plugin add cordova-plugin-app-version 
     8.啟動(dòng)頁(yè)插件  cordova plugin add cordova-plugin-splashscreen
     9.獲取手機(jī)Mac地址 cordova plugin add com-badrit-macaddress
     10.系統(tǒng)插件  cordova plugin add cordova-plugin-device
      11.系統(tǒng)鍵盤插件 cordova plugin add ionic-plugin-keyboard
      11.字體插件cordova plugin add cordova-plugin-fonts

如果你需要其他的插件可以到 http://cordova.axuer.com/plugins/ 里面搜索 里面還有js代碼直接復(fù)制粘貼就可以

9. 解決Could not resolve org.xwalk:xwalk_core_library:23 .打包失敗問題

參考地址 https://stackoverflow.com/questions/36654990/error-building-xwalk-with-cordova-android
打開platforms\ android \ cordova-plugin-crosswalk-webview \ eqp-xwalk.gradle
把這個(gè):

    dependencies {
         xwalkSpec
    }
改為這一個(gè):
    dependencies {
         compile 'org.xwalk:xwalk_core_library:23.53.589.4' //xwalkSpec
    }

10.解決 In <declare-styleable> FontFamilyFont, unable to find attribute android:font 抱錯(cuò)

1527662814(1).png

打開打開platforms\ android \build.gradle
在 dependencies {...}代碼下面添加以下代碼

// ADDED THESE LINES
configurations.all {
  resolutionStrategy.force 'com.android.support:support-v4:26+'
}

參考地址 https://www.e-learn.cn/content/wangluowenzhang/29664

11.cordova各個(gè)文件

項(xiàng)目的文件


image.png

hooks文件夾沒有什么用 不可以改動(dòng)
node_nodeule文件夾不可以改動(dòng)
platforms文件夾是你的平臺(tái)代碼
plugins文件夾里面是一些插件
res是你存放icon和啟動(dòng)頁(yè)的文件夾
www里面就是你的代碼啦
.npmignore文件時(shí)忽略文件沒用
build.json是我寫的json文件下面介紹打包的時(shí)候再提
config.xml這個(gè)文件是最重要的 里面是一些配置信息
package.json和package-lock.json不用動(dòng) 是自動(dòng)生成的配置文件
release-key.keystore文件是打包正式安裝包的需要的簽名文件

12.cordova里面的config.xml

<?xml version='1.0' encoding='utf-8'?>
//這里的id是你創(chuàng)建項(xiàng)目的時(shí)候?qū)懙陌?可以隨便寫 但是還是語(yǔ)義化一點(diǎn)比較好
//如果是ios平臺(tái)這個(gè)是bundle_id bundle_id是在蘋果開發(fā)者中心申請(qǐng)的,不可以隨便寫 必須填寫你申請(qǐng)的
//包名和bundle_id是判斷你APP的唯一標(biāo)識(shí)
<widget id="com.yourname.testdemo" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    //app名稱
    <name>TestDemo</name>
    //app描述  填不填都可以
    <description>
        cordova demo
    </description>
    //作者
    <author email="141204xxxx@qq.com" >
        MY TEAM
    </author>
    //這里是你的app頁(yè)面入口 也就是在WWW文件夾下的html 
    //比如你想定入口在html文件夾下的guide.html 應(yīng)該填寫html/guide.html
    <content src="index.html" />
    //下面的沒有研究 自帶的
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    //接下來是平臺(tái)代碼了
    <platform name="android">
        <allow-intent href="market:*" />
        //icon app圖標(biāo)  在res文件夾下
        <icon density="ldpi" src="res/icon/android/36.png" />
        <icon density="mdpi" src="res/icon/android/48.png" />
        <icon density="hdpi" src="res/icon/android/72.png" />
        <icon density="xhdpi" src="res/icon/android/96.png" />
        <icon density="xxhdpi" src="res/icon/android/144.png" />
        <icon density="xxxhdpi" src="res/icon/android/192.png" />
        //icon app圖標(biāo)  在res文件夾下
        <splash density="land-hdpi" src="res/screen/android/800-480.png" />
        <splash density="land-ldpi" src="res/screen/android/320-200.png" />
        <splash density="land-mdpi" src="res/screen/android/480-320.png" />
        <splash density="land-xhdpi" src="res/screen/android/1280-720.png" />
        <splash density="port-hdpi" src="res/screen/android/480-800.png" />
        <splash density="port-ldpi" src="res/screen/android/200-320.png" />
        <splash density="port-mdpi" src="res/screen/android/320-480.png" />
        <splash density="port-xhdpi" src="res/screen/android/720-1280.png" />
    </platform>
    //這是一些配置
    //app強(qiáng)制豎屏portrait 橫屏是landscape
    <preference name="orientation" value="portrait" />
    <preference name="SplashScreen" value="screen"/>
    <preference name="SplashScreenDelay" value="0"/>#顯示時(shí)間
    <preference name="AutoHideSplashScreen" value="false"/>#禁止自動(dòng)隱藏
    <preference name="FadeSplashScreen" value="false"/>#禁用淡出效果
    <preference name="SplashMaintainAspectRatio" value="true" />#圖像cover屏幕
    <preference name="ShowSplashScreenSpinner" value="false" />#隱藏加載灰圈
    <preference name="SplashShowOnlyFirstTime" value="false" />#每次重新啟動(dòng)都顯示
    //Fullscreen設(shè)置程序是否全屏仇冯。全屏?xí)r狀態(tài)欄將不可見之宿,默認(rèn)為false顯示狀態(tài)欄。
    <preference name="Fullscreen" value="false" />
    //info.plist文件配置信息   在ios平臺(tái)才需要  不然在iTunes content上傳構(gòu)建版本的時(shí)候會(huì)被拒絕
   //我就被拒絕過 郵件內(nèi)容是The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data
    <edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
        <string>允許訪問用于上傳和發(fā)送照片</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
        <string>允許訪問用于上傳和發(fā)送照片</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
        <string>允許訪問位置信息</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryAddUsageDescription">
        <string>允許訪問用于上傳和發(fā)送照片</string>
    </edit-config>
    //插件信息
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
    <plugin name="cordova-plugin-alipay-v2" spec="0.0.4">
        <variable name="APP_ID" value="[xxxxxxxxxxx]" />
    </plugin>
    <plugin name="com-badrit-macaddress" spec="https://github.com/mohamed-salah/MacAddress.git" />
    <plugin name="cordova-plugin-wechat" spec="^2.1.0">
        <variable name="WECHATAPPID" value="xxxxxxxxxxxx" />
    </plugin>
    <plugin name="cordova-plugin-qqsdk" spec="^0.9.6">
        <variable name="QQ_APP_ID" value="xxxxxxxxxx" />
    </plugin>
    <plugin name="cordova-plugin-crosswalk-webview" spec="^2.4.1">
        <variable name="XWALK_VERSION" value="23+" />
        <variable name="XWALK_LITEVERSION" value="xwalk_core_library_canary:17+" />
        <variable name="XWALK_COMMANDLINE" value="--disable-pull-to-refresh-effect" />
        <variable name="XWALK_MODE" value="embedded" />
        <variable name="XWALK_MULTIPLEAPK" value="true" />
    </plugin>
    <plugin name="cordova-plugin-device" spec="^2.0.1" />
    <plugin name="cordova-plugin-splashscreen" spec="^5.0.2" />
    <plugin name="cordova-plugin-app-version" spec="^0.1.9" />
    <plugin name="cordova-plugin-camera" spec="^4.0.2" />
    <plugin name="cordova-plugin-compat" spec="^1.2.0" />
   //平臺(tái)版本
    <engine name="android" spec="^6.2.3" />
</widget>

13. 解決ios狀態(tài)欄被覆蓋問題 修改Class文件夾 MainViewController.m

因?yàn)闇y(cè)試的時(shí)候發(fā)現(xiàn)蘋果5狀態(tài)欄被覆蓋了 所以修改以下代碼

- (void)viewWillAppear:(BOOL)animated
{
    // View defaults to full size.  If you want to customize the view's size, or its subviews (e.g. webView),
    // you can do so here.

    [super viewWillAppear:animated];
}

替換為

    - (void)viewWillAppear:(BOOL)animated
{
    // View defaults to full size.  If you want to customize the view's size, or its subviews (e.g. webView),
    // you can do so here.
    if([[[UIDevice currentDevice]systemVersion ] floatValue]>=7)
    {
        CGRect viewBounds=[self.webView  bounds];
        viewBounds.origin.y=20;
        viewBounds.size.height=viewBounds.size.height-20;
        self.webView.frame=viewBounds;
    }
    [super viewWillAppear:animated];
}
-(void)viewWillDisappear:(BOOL)animated
{
 
    if([[[UIDevice currentDevice]systemVersion ] floatValue]>=7)
    {
        CGRect viewBounds=[self.webView  bounds];
        viewBounds.origin.y=20;
        viewBounds.size.height=viewBounds.size.height+20;
        self.webView.frame=viewBounds;
    }
    
    [super viewWillDisappear:animated];
}

14. 解決ios頁(yè)面上下滾動(dòng)問題 把以下代碼添加到config文件

    <preference name="WebViewBounce" value="false" />
    <preference name="DisallowOverscroll" value="true" />

15. android項(xiàng)目在config文件里修改包名的時(shí)候一定要?jiǎng)h除平臺(tái)再安裝一次

16. ios項(xiàng)目每一次打包都需要?jiǎng)h除平臺(tái)再安裝一次 防止代碼沒有更新

17.打包debug APK android

打開命令行 cd到你的項(xiàng)目中

    cordova build android
image.png

這樣打包就成功了 紅圈的地方是你的安裝包地址 因?yàn)槲矣昧薱rosswolk插件 所以會(huì)有兩個(gè)安裝包 你們用armv7就可以

18.打包正式包

PS:上一步是debug安裝包 是測(cè)試用的 簽名是自生成的 不可以用來正式發(fā)布的 因?yàn)樗暮灻歉鶕?jù)電腦生成的也就是說你換了電腦就不能用了 正式安裝包有簽名文件 也就是前面說的keystore文件為你的安裝包生成簽名 只要keystroe文件一樣 你的簽名就不會(huì)變化
PS: 包名是APK的唯一標(biāo)識(shí) 用來識(shí)別是不是同一個(gè)APK 而簽名呢我的理解代表的開發(fā)者 包名一樣的可以覆蓋安裝 包名不一樣的不可以覆蓋安裝

//首先生成一個(gè)keystroe簽名文件  這個(gè)keystroe不能丟失要保存好 我上次試了一次重新生成keystroe文件結(jié)果發(fā)現(xiàn)文件不同
keytool -genkey -v -keystore release-key.keystore -alias cordova-demo -keyalg RSA -keysize 2048 -validity 10000
//上面的命令意思是苛坚,生成一個(gè) release-key.keystore 的文件比被,別名(alias)為 cordova-demo 。(validity)期限10000天
//過程中會(huì)要求設(shè)置 keystore 的密碼和 key 的密碼泼舱。我們分別設(shè)置為 123456 和 123456等缀。這四個(gè)屬性要記牢,下一步有用娇昙。
//生成一個(gè)正式安裝包
cordova build android --release
//對(duì)這個(gè)安裝包簽名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore release-key.keystore platforms/android/build/outputs/apk/android-armv7-release-unsigned.apk mgc
//為了以后不必這么麻煩 我們可以在項(xiàng)目中創(chuàng)建一個(gè)json文件  前面提到的build.json文件
{
  "android": {
    "release": {
      "keystore": "release-key",//keystroe文件名
      "alias": "cordova-demo",//項(xiàng)目別名
      "storePassword": "123456",//密碼
      "password": "123456"http://密碼
    }
  }
}
下次就可以直接用 cordova build --release 了尺迂。
image.png

image.png

我們可以看到它調(diào)用了你的build.json文件和你的keystore文件 會(huì)直接給你生成一個(gè)簽好名的正式安裝包了
文章推薦:https://segmentfault.com/a/1190000005177715 這個(gè)感覺更詳細(xì)一些

19.最痛苦的來了 打包蘋果安裝包 ipa 文件

下面是mac上打包ios包的步驟(從申請(qǐng)賬號(hào)到app store應(yīng)用上架)

1. 申請(qǐng)ios開發(fā)者賬號(hào)

開發(fā)者賬號(hào)分類


6788994-041bd44dd3065f8b.png

如果是個(gè)人賬號(hào)發(fā)布的應(yīng)用,App Store開發(fā)者的位置顯示的是開發(fā)者個(gè)人的名字冒掌,而公司賬號(hào)則可以顯示公司的名字噪裕,現(xiàn)在App Store上的應(yīng)用一般都是公司賬號(hào)。

企業(yè)賬號(hào)比較特殊股毫,發(fā)布的安裝包可以安裝到任何設(shè)備上膳音,但是不能發(fā)布到App Store。一般一些企業(yè)內(nèi)部的應(yīng)用都使用這種賬號(hào)铃诬,想開發(fā)什么就開發(fā)什么严蓖,不用擔(dān)心蘋果審核機(jī)制的問題。

接下來的賬號(hào)申請(qǐng)氧急,參考http://www.reibang.com/p/9b994a019ee6 很詳細(xì)颗胡。

到這里賬號(hào)已經(jīng)申請(qǐng)下來了,我的是$99的公司級(jí)開發(fā)賬號(hào)吩坝。

2. 打開蘋果開發(fā)網(wǎng)站 https://developer.apple.com/ 毒姨,點(diǎn)擊Account,登錄你的開發(fā)者賬號(hào)

3. 進(jìn)入 Certificates, Identifiers & Profiles

4. 添加證書

6788994-580cb124448d2359.png

6788994-90c1c835d95fe1de.png

這四個(gè)證書是一個(gè)一個(gè)添加的钉寝,如果你的app 有推送 則需要弄添加那兩個(gè)推送的證書弧呐,沒有就不用管,只添加那兩個(gè)app發(fā)布證書即可嵌纲。

兩次continue之后俘枫,看到如下圖界面 choosefile

6788994-32bf564088ce2467.png

接下來回到桌面,打開鑰匙串逮走,獲取CSR文件鸠蚪。

6788994-0dacdc0af2efc91a.png
6788994-eae345b11286ddc9.png

繼續(xù)后,有彈框提示存儲(chǔ)位置,存在能找到的地方后回到剛才請(qǐng)求發(fā)布證書的頁(yè)面茅信,choose file 選擇剛才的文件盾舌,然后點(diǎn)擊continue。然后如下如界面蘸鲸,點(diǎn)擊download妖谴,下載下來后找到該文件,雙擊酌摇,則自動(dòng)添加到你電腦的鑰匙串中了说贝。

6788994-c7fc4fa2582ea03d.png

5.創(chuàng)建App IDs和綁定你的App的BundleIdentifier

6788994-8988d4171137ed39.png
6788994-9ec70ccea9f0b54f.png

注:你填寫的bundle ID 有可能已經(jīng)被注冊(cè)過了脆炎,那么你需要自行修改一個(gè)闷供,但如果這里改了庐橙,記得代碼的config.xml文件里也要改!

下面勾選上你app用到的服務(wù)怯伊,比如推送,沒有的話直接下一步下一步就好判沟。


6788994-638b813627da4452.png

6.生成描述文件(描述文件的作用就是把證書和BundleIdentifier關(guān)聯(lián)起來)

6788994-456201b1dcda06d9 (1).png

1524102088(1).png

這里我們先選 Ad Hoc 選擇APPid

1524102253(1).png

選擇你創(chuàng)建好的證書

1524102253(1).png

因?yàn)槲覀冞x的 是 Ad Hoc 這個(gè)是為測(cè)試設(shè)備創(chuàng)建的 也就是說 我們需要選擇udid 這個(gè)udid可以在devices里面添加 這有添加了你手機(jī)的udid之后 耿芹,你的手機(jī)才可以安裝APP

1524102492(1).png

然后 是上傳到APP strore 的描述文件, 沒有截圖了挪哄,口述吧:

  a) 還是先選擇 app id

  b) 選擇你剛創(chuàng)建的發(fā)布證書

  c) 在Profile Name欄里輸入一個(gè)文件名字 下載下來 ,雙擊吧秕,就自動(dòng)添加到你電腦的鑰匙串中了。這里必須要放到鑰匙串中不然你是用不了得

7. 將在windows上寫的代碼 移植到mac上迹炼,通過拷貝或者git下載砸彬。放入到www文件夾下

8.打開命令行 進(jìn)入到你的項(xiàng)目 然后重新平臺(tái) 安裝平臺(tái) (為保證代碼得到更新)

QQ圖片20180419152855.png

9.然后進(jìn)入到你的項(xiàng)目文件夾 郵件以Xcode打開platforms/ios/xxxx.xcodeproj文件

QQ圖片20180419154210.jpg

10.接下來我們配置一下基礎(chǔ)信息 就可以打包了(我也不是搞IOS開發(fā)的 配置可能不太詳細(xì) 或者什么地方有誤) 我是參考的這篇文章http://www.reibang.com/p/749322c7b01a 大家可以看一下
QQ圖片20180419155024.png

1 Display Name 是你的項(xiàng)目名稱 在config.xml寫好的
2 Bundle identifier 是你的在開發(fā)者中心申請(qǐng)的 在config.xml寫好的
3 version build 是你的版本信息 在config.xml寫好的
4 上面的信息是我在config文件里面配置好的 自動(dòng)帶過來的
5 sign(debug)和sign(release)選擇你下載好的描述文件
5 xcode 8.0以后點(diǎn)擊Signing 小方塊選項(xiàng)可以自動(dòng)配置你的證書
6 打包時(shí)上面的小錘子一定要選擇Generic iOS Device

QQ圖片20180419155940.jpg

7 如果你的app需要什么照相機(jī) 但是提示是英文的 你可以點(diǎn)擊info 把其中的English改為China
8 接下來我們可以點(diǎn)擊上面的product/Archive 進(jìn)行打包了
這里 我們可以選擇導(dǎo)出或者上傳到APPstore(Export或者Upload to APP Store)
9 當(dāng)我們導(dǎo)出的時(shí)候 彈出下面的圖 第一個(gè)是導(dǎo)出上傳 APP Store的包 第二個(gè)則是你的設(shè)備測(cè)試包 也就是你添加的udid的手機(jī)可以安裝測(cè)試的

QQ圖片20180419161126.jpg

還記不記得下面這張圖

1524102088(1).png

你選擇的描述文件時(shí) 上傳APP Store的 你就導(dǎo)出APP Store的包
你選擇的是Ad Hoc的描述文件 你就導(dǎo)出Ad Hoc的包

PS:https://icon.wuruihong.com/ 一個(gè)一鍵生成各種尺寸網(wǎng)站

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市斯入,隨后出現(xiàn)的幾起案子砂碉,更是在濱河造成了極大的恐慌,老刑警劉巖刻两,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件增蹭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡磅摹,警方通過查閱死者的電腦和手機(jī)滋迈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來户誓,“玉大人饼灿,你說我怎么就攤上這事〉勖溃” “怎么了碍彭?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我硕旗,道長(zhǎng)窗骑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任漆枚,我火速辦了婚禮创译,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘墙基。我一直安慰自己软族,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布残制。 她就那樣靜靜地躺著立砸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪初茶。 梳的紋絲不亂的頭發(fā)上颗祝,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音恼布,去河邊找鬼螺戳。 笑死,一個(gè)胖子當(dāng)著我的面吹牛折汞,可吹牛的內(nèi)容都是我干的倔幼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼爽待,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼损同!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鸟款,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤膏燃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后何什,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹄梢,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年富俄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了禁炒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡霍比,死狀恐怖幕袱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情悠瞬,我是刑警寧澤们豌,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布涯捻,位于F島的核電站,受9級(jí)特大地震影響望迎,放射性物質(zhì)發(fā)生泄漏障癌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一辩尊、第九天 我趴在偏房一處隱蔽的房頂上張望涛浙。 院中可真熱鬧,春花似錦摄欲、人聲如沸轿亮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)我注。三九已至,卻和暖如春迟隅,著一層夾襖步出監(jiān)牢的瞬間但骨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國(guó)打工智袭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奔缠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓补履,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親剿另。 傳聞我的和親對(duì)象是個(gè)殘疾皇子箫锤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容