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
現(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
- 安裝[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è)小坑)
安裝完成以后我們打開命令行輸入JAVAC 可以看到如下圖 不是內(nèi)部命令 是因?yàn)槲覀儧]配置環(huán)境變量
- 打開我的電腦--屬性--高級(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我們?cè)俅未蜷_命令行輸入“JAVAC”九府,輸出幫助信息即為配置正確椎瘟。如圖:
ANDROID SDK
- 安裝[ANDROID SDK]
下載Android Studio并安裝(官方文檔說 僅安裝 Android Stand-alone SDK 也可。但是我試過并不可以侄旬,會(huì)出下面的錯(cuò)誤 說你沒有 gradle)
打開android studio 點(diǎn)擊file/settings/appearance&behavior/system settings/android SDK 在這里可以看到你的SDK地址 把它復(fù)制下來
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 如下圖
PS:然后我安裝的平臺(tái)是 7.0.0 可以看到需要android-26支持 但是我安裝的27
這個(gè)時(shí)候我們?nèi)绻虬脑捑蜁?huì)報(bào)錯(cuò)了
還有就是我們現(xiàn)在用安卓7.0.0的平臺(tái)的話 有些插件是安裝不了的 如果需要安裝插件的話 就要降低android版本 我這里用的是android6.2.3 需要的是android-25
那么我們就去下載一下SDK吧 把你需要的勾選上 然后點(diǎn)擊OK就可以了
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ò)
打開打開platforms\ android \build.gradle
在 dependencies {...}代碼下面添加以下代碼
// ADDED THESE LINES
configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:26+'
}
11.cordova各個(gè)文件
項(xiàng)目的文件
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
這樣打包就成功了 紅圈的地方是你的安裝包地址 因?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 了尺迂。
我們可以看到它調(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)分類
如果是個(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. 添加證書
這四個(gè)證書是一個(gè)一個(gè)添加的钉寝,如果你的app 有推送 則需要弄添加那兩個(gè)推送的證書弧呐,沒有就不用管,只添加那兩個(gè)app發(fā)布證書即可嵌纲。
兩次continue之后俘枫,看到如下圖界面 choosefile
接下來回到桌面,打開鑰匙串逮走,獲取CSR文件鸠蚪。
繼續(xù)后,有彈框提示存儲(chǔ)位置,存在能找到的地方后回到剛才請(qǐng)求發(fā)布證書的頁(yè)面茅信,choose file 選擇剛才的文件盾舌,然后點(diǎn)擊continue。然后如下如界面蘸鲸,點(diǎn)擊download妖谴,下載下來后找到該文件,雙擊酌摇,則自動(dòng)添加到你電腦的鑰匙串中了说贝。
5.創(chuàng)建App IDs和綁定你的App的BundleIdentifier
注:你填寫的bundle ID 有可能已經(jīng)被注冊(cè)過了脆炎,那么你需要自行修改一個(gè)闷供,但如果這里改了庐橙,記得代碼的config.xml文件里也要改!
下面勾選上你app用到的服務(wù)怯伊,比如推送,沒有的話直接下一步下一步就好判沟。
6.生成描述文件(描述文件的作用就是把證書和BundleIdentifier關(guān)聯(lián)起來)
這里我們先選 Ad Hoc 選擇APPid
選擇你創(chuàng)建好的證書
因?yàn)槲覀冞x的 是 Ad Hoc 這個(gè)是為測(cè)試設(shè)備創(chuàng)建的 也就是說 我們需要選擇udid 這個(gè)udid可以在devices里面添加 這有添加了你手機(jī)的udid之后 耿芹,你的手機(jī)才可以安裝APP
然后 是上傳到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) (為保證代碼得到更新)
9.然后進(jìn)入到你的項(xiàng)目文件夾 郵件以Xcode打開platforms/ios/xxxx.xcodeproj文件
10.接下來我們配置一下基礎(chǔ)信息 就可以打包了(我也不是搞IOS開發(fā)的 配置可能不太詳細(xì) 或者什么地方有誤) 我是參考的這篇文章http://www.reibang.com/p/749322c7b01a 大家可以看一下
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
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è)試的
還記不記得下面這張圖
你選擇的描述文件時(shí) 上傳APP Store的 你就導(dǎo)出APP Store的包
你選擇的是Ad Hoc的描述文件 你就導(dǎo)出Ad Hoc的包
PS:https://icon.wuruihong.com/ 一個(gè)一鍵生成各種尺寸網(wǎng)站