寫在最前,開發的話,真的沒事不要升級最新的系統,最新的開發工具,真的一堆坑,而且解決起來還賊麻煩,因爲新系統可能用的人不多,所以文檔搜索起來也麻煩- -
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後臺播放音樂
}