記錄一下unity 打包Xcode以及上傳testflight的一些坑---xocde11上傳App Store connect-testflight(ipa上傳至Apple服務器- -)的坑

接上文

寫在最前,開發的話,真的沒事不要升級最新的系統,最新的開發工具,真的一堆坑,而且解決起來還賊麻煩,因爲新系統可能用的人不多,所以文檔搜索起來也麻煩- -

Xcode11下上傳testflight

1 先說一下網絡問題吧

如果報什麼連接不到Apple服務器啊,什麼需要將端口port設置爲443啊,吧啦吧啦的。先在網絡偏好裏將當前使用的網絡代理給關掉,可能是代理的鍋。

然後還是連接不上的話就嘗試更換網絡,比如手機熱點,然後多嘗試幾次,總能連接上Apple的服務器,總能提交你的ipa。

2好了,最關鍵的問題來了!!!

當你設置了網絡之後還是沒法把你的ipa成功上傳至appstore connect,這時候發現,xcode11好像並沒有上傳的功能?好像並沒有applicationloader.app?(也是搜索了一堆資料後發現的),到這裏你可能也搜到了這篇文章:https://www.jianshu.com/p/031cec0feb1a

裏面是有一箇舊版的Application Loader供你下載使用,我最初也是這麼弄的,但是將上文提到的app複製進xcode文件夾內之後還是無法上傳,會出現巴拉巴拉的報錯,後來繼續百度,是用命令行去清除xcode的緩存,類似這樣:

1、cd ~

2、mv .itmstransporter/ .old_itmstransporter/

3、"/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter"

但是我在終端敲了之後會報no directory or file的錯誤,似乎是xcode沒有這個目標文件夾。就在我快放棄上傳至appstore connect的時候,發現上文提到了:"蘋果在Mac AppStore 發佈了transporter 來代替Application Loeader,可視化上傳更方便",於是便在mac的應用商店搜索到了這個玩意並下載:

打開之後登陸你的開發者賬號,然後將你在xcode裏打的ipa文件直接拖拽進這個app內,稍等幾秒就會檢測完畢像這樣:

然後點擊交付就ok了,然後就會出現進度條,直到上傳成功,如果上傳失敗。嘗試切換一下網絡,我在傳的時候也是各種不ok,最後切換手機熱點上傳,速度嗖嗖的,上傳成功後後就可以在開發者賬號官網內查詢到你上傳的app。

3 開發者網站 App Store Connect

在Apple developer網站上點擊跳轉至App Store Connect至如下頁面然後點擊我的app:

然後找到你將要發佈的app點擊進去,

然後構建版本,選擇你上傳的app,然後吧啦吧啦一頓設置,就會提交beta版本的審覈。之後點擊添加羣組,輸入待測者的Apple ID,選擇你構建的版本,之後點擊確定,等到版本審覈通過之後,待測者就會收到Apple的郵件邀請。之後在手機上下載testflight這個app,就可以參與測試了。

好了,到這裏就算是完成了unity-xcode-appstore connect-testflight的全部設置。第一次搞iOS的話,簡直可以說是經歷了九九八十一難(算上把mac格式化重裝系統開始- -)。然後能想到的一些坑就這些,也全都記了下來,有問題再說吧。就這樣。

 

寫在最後。寫在xcode生成的unitycontroller.mm文件裏的,可以讓app退出後臺時播放當前曲目的代碼(也僅限於當前曲目,播放完畢之後並不會繼續播放,想實現完整播放器功能的話還是建議直接寫一個原生的iOS應用,而不是通過unity),代碼如下:

#include <AVFoundation/AVFoundation.h>
- (void)startUnity:(UIApplication*)application
{
    NSAssert(_unityAppReady == NO, @"[UnityAppController startUnity:] called after Unity has been initialized");
    
    // we make sure that first level gets correct display list and orientation
    [[DisplayManager Instance] updateDisplayListCacheInUnity];

    UnityLoadApplication();
    Profiler_InitProfiler();

    [self showGameUI];
    [self createDisplayLink];

    UnitySetPlayerFocus(1);

    //unity後臺播放音樂
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
    [[AVAudioSession sharedInstance] setActive:YES error: nil];
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    //unity後臺播放音樂
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章