上個禮拜泻肯,用Xcode8.3.3上傳APP到 iTunes connect的時候突然產(chǎn)生一個錯誤:
No accounts with iTunes Connect access
iTunes Connect access for "Team-Name" is required. Add an account in the Accounts preference plane.
網(wǎng)上的帖子討論胖齐,一致任務(wù)這是蘋果的bug钓账,所以一直希望蘋果修復抓谴。不過等了一個多禮拜讹语,都沒有看到效果流炕,而另外又有帖子說嘶摊,升級Xcode 9可以解決這個問題集峦,所以打算升級到Xcode9和iOS 11辅髓。
升級之后,確實可以上傳到iTunes connect了少梁÷蹇冢可以看到上傳的流程有所改變,這可能就是Xcode8.3.3出錯的原因吧凯沪。
那么接下來就開始折騰Xcode 9/iOS 11的適配吧第焰。
主要是論壇項目,編譯運行之后妨马,就發(fā)現(xiàn)挺举,點擊Tabbar沒反應了。Tabbar我是自定義過的烘跺,棄用了系統(tǒng)的TabbarItem湘纵,而是在Tabbar的位置上添加了5個UIButton,通過這5個Button來觸發(fā)切換Controller滤淳。
研究后發(fā)現(xiàn)
Xcode 9和之前版本的差異梧喷,是self.tabbar.subviews出現(xiàn)了差異。Xcode 9之前,self.tabbar.subviews返回了系統(tǒng)的TabbarItem對應的UITabbarButton铺敌。
而Xcode9中汇歹,self.tabbar.subviews并不返回系統(tǒng)的TabbarItem對應的UITabbarButton。
我在自定義Tabbar的代碼中偿凭,調(diào)用了如下代碼产弹,相當于把系統(tǒng)的Button給刪除了。
for (UIView* obj in self.tabBar.subviews) {
if (obj != 自定義的tabbar sub view) {
[obj removeFromSuperview];
}
}
而Xcode9的變動弯囊,導致系統(tǒng)的Button并沒有刪除痰哨,所以點擊時直接調(diào)用了系統(tǒng)的按鈕,而忽略了自定義的按鈕及其事件匾嘱。
修改斤斧,添加如下代碼,讓系統(tǒng)的UIBarButtonItem 失效奄毡。
for (UIBarButtonItem * buttonItem in self.tabBar.items) {
[buttonItem setEnabled:NO];
}
今天又發(fā)現(xiàn)一個問題,向Toolbar上添加Button贝或,但點擊Button并不會觸發(fā)Button對應的事件吼过。最后的修改方案在這里:
https://stackoverflow.com/questions/46107640/ios11-uitoolbar-contentview