等着打包過程中記錄一下如何打一個debug包到真機上測試的流程
1. 需要在XCode中創建一個新的項目,選擇iOS==>Single View App,點擊Next
2. 在新的彈框中需要Apple Id,可以使用自己的Apple Id,對應的Team可以選擇個人的Personal Team,然后將剩下的
Organization Name, Organization Indetifier等依次填好。 Next
3. 在新窗口中依次填好Version等對應信息,這里最終會生成打包所需要的證書文件。需要額外注意Bundle Identifier的值,在接下來的操作中還會用到。到這里在Xcode中的工作就完成了。
4.回到Visual studio for mac中選擇.iOS的project,打開Info.plist文件,將捆綁包標識符(Bundle Identifier)更改為上面記錄的值。這里除了**捆綁包標識符**的輸入框那里要改,下面的Bundle Siging Options...的button點出來的頁面里的值也要更改。
5.Visual studio for mac中將debug的機器類型選擇為你的測試機(需要數據線連接)
你可能會遇到這樣的問題:
1. Invalid iTunesArtwork dimensions (1536x1536) for '/Users/developer4/Library/Caches/Xamarin/mtbs/builds/ProjectName.iOS/e91a9151da4817a1c6113fda15a82a6d/Resources/iTunesArtwork@3x.png'. ProjectName.iOS
解決方案:從項目中排除iTunesArtwork@3x.png。https://forums.xamarin.com/discussion/128666/invalid-itunesartwork-dimensions-1536x1536
2. Cound not connect to debugger
A. 可能是第一次運行在真正的設備上,需要測試用的設備連接網絡(可能會向開發者的App Id發送驗證信息),需要信任開發者(trust developer),Setting =》 General
B. Visual studio for mac自身的bug,重啟設備,隨緣解決。(https://developercommunity.visualstudio.com/content/problem/209829/cannot-connect-debugger-after-update-03062018.html)
另:建議先在Xcode 跑一次,再使用visual studio for mac打包。因為后者並不提示任何錯,只是告訴你打包失敗。
這樣只可以做出來供Dev與QA測試用的Debug包,Release包需要證書,以后再補充吧。
補充:
證書會過期,具體情形為打包出的app統一的在某個時間后都會一直閃退,點擊App Icon就會閃退。連接查看log可以看到類似於 “AMFI code signature validation failed”的錯誤提示。此時是前面的證書過期,需要重新生成一個證書。
重新生成證書:
1.在Xcode中更改一下之前生成的證書的Bundle Identifier的值(可以還是原來的Apple賬號)
2.在info.plist中更改捆綁包標識符。這里除了**捆綁包標識符**的輸入框那里要改,下面的Bundle Siging Options...的button點出來的頁面里的值也要更改。
更換了一個新的設備進行打包,visual studio for mac不提示錯誤,證書也沒問題,可能是因為證書要求的系統版本高於設備的系統版本。在Xcode中進行打包會提示這種Error,這也是建議先用Xcode打一次包的原因之一。
真實證書篇:
客戶會提供證書文件,應該包含三部分內容(windows打開可能會看到額外多一個__MACOSX文件,可能是Mac系統下的隱藏文件)。在Mac系統下進行打包步驟如下:
1. 先在Mac系統下安裝證書(點擊后綴為.p12的文件),如果需要密碼去pwd文件中找。
2. 在Xcode中配置證書,Bundle Identifier為對應的證書中的后綴
3. 更換info.plist中的Bundle Identifier
4. Visual Studio for MAC中選擇Realese|iPhone|通用設備
5. Visual Studio for MAC菜單欄中 生成 =》 存檔以發布
6. 存檔頁面右下角簽名並分發 ==》生成后綴為.ipa的包。
PS: 存檔以供發布以后一定要檢查一下是不是生成了新的存檔,否則還是按照原來的存檔打包,你的代碼不會更新!暫時可能需要在Debug模式下來重新存檔,不知道為什么。
遇到好的技術領導會幫助你很多,另外遇到不靠譜,不管事的技術領導其實也一樣。因為坑你得一個一個踩,甚至得你來排計划,分配任務,監控進度,向上匯報,code review,所以到底誰是領導? 現在的心情就配一首北大醉俠的打油詩吧:
要想榮華富貴,
除非狼心狗肺。
起早貪黑跑單位,
挨不完的累,
下不完的跪,
咽不完的淚。
大丈夫鋼牙咬碎,
我X你祖宗八輩!