Xcode8以及iOS10問題總結!


Xcode8的問題

注釋功能問題解決

打開終端,命令運行: sudo /usr/libexec/xpccachectl 重啟電腦

在xib和stroyboard出現大量警告,需要重新適配,字體所占用寬度變大

collectionView問題

 

 

屏蔽Xcode 8“煩人”的日志輸出

更新到Xcode 8的同學應該都遇到了這個問題:用Xcode 8運行項目,日志會瘋狂的刷,就像下面這種圖一樣:


日志輸出

於是,簡單搜尋了下,“歪果仁”給出了如下解決方法:

Edit Scheme-> Run -> Arguments, 在Environment Variables里邊添加 OS_ACTIVITY_MODE = disable


解決方法圖解

這樣設置之后,就屏蔽掉那些煩人的日志了。

【1】、Xcode8代 碼出現ubsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0 2016-09-14 17:18:55.843428 MyApp[6880:340837]

解決辦法:【product】-【scheme】-【Edit Scheme】-【Run】-【Argument】-【Environment Variable】添加keyValue【OS_ACTIVITY_MODE   disable】可以停止輸出打印此日志

遺留問題:還會出現Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x10a39a910) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x10a1c4210). One of the two will be used. Which one is undefined.

【2】MJRefresh出現崩潰現象

 解決辦法:類庫增加判斷

1
2
3
if  (range.location !=  NSNotFound ) {
             language = [language substringToIndex:range.location];
}    

【3】iOS10字體隱藏問題

label的話寫一個擴展類

  • 第二步 
    這里寫圖片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@implementation  UILabel (Extend)
 
- ( void )lableAdaptIOS10{
 
     CGFloat iOS10 = [[UIDevice currentDevice] systemVersion].floatValue >= 10;
     if  (iOS10) {
//        self    UIFont 的preferredFontForTextStyle: 意思是指定一個樣式,並讓字體大小符合用戶設定的字體大小。
         [ self  sizeToFit];
 
//      self.font =[UIFont preferredFontForTextStyle: UIFontTextStyleHeadline];  
         //是否更新字體的變化
//        self.adjustsFontForContentSizeCategory = YES;
     }
}

Xcode8總是打印一堆奇怪的東西。雖然不影響開發,但是看着很不爽。解決的方法就是在Scheme里面添加OS_ACTIVITY_MODE = disable

    • 第一步 
      這里寫圖片描述

    • 第二步 
      這里寫圖片描述

    •  

      Xcode8打包出現的問題
    • 簽名出錯,Xcode8可以自動替開發者生成證書描述問題
    • 參考網站https://translate.googleusercontent.com/translate_c?depth=1&hl=zh-CN&prev=search&rurl=translate.google.com.sg&sl=en&u=http://stackoverflow.com/questions/37806538/code-signing-is-required-for-product-type-application-in-sdk-ios-10-0-stic&usg=ALkJrhgcKvLVlgyIWGq9xcDjdoXGh2BpPg
    • 需要FQ
    •  

    •  

    •  

    •  

      • 現在做的Xcode - >產品 - >清潔。 關閉您的項目在Xcode並再次打開它。

      • 在此之后到您的每一個目標的常規選項卡,勾選“自動管理簽名”,並在團隊下拉菜單中選擇您的開發者賬戶 

       

       

    • 官方網站
    •  

    • ERROR ITMS-90682: Invalid Bundle - The asset catalog at 'Payload/XXXXX/Assets.car' can't contain 16-bit or P3 assets if the app supports iOS 9.3 or earlier.

      剛升級Xcode 8, 幺蛾子又出現了。提交的時候出了這個問題。 BTW,感謝google。以下為解決方案:‘

      在 Xcode 8 中,當你資源文件中[含有16位圖]或者[圖片顯示模式γ值為'P3'] 且iOS targets設定為iOS 9.3以下就會出現這個問題. 如果你的app需要支持廣色域顯示的話,那你必須得把target設置成iOS 9.3+,相反,如果你的app不需要支持廣色域且你想兼容 iOS 9.3 之前的項目,你就得把所有的16位的或者顯示模式為'P3'圖片全都替換成8位模式的SRGB顏色的圖片。

       

      你可以通過運行“assetutil”在iTunes Connect的錯誤信息中找到16-bit 或 P3 資源文件。離線的解決方案如下:

      1.導出項目的 ipa 文件

      2.定位到該ipa文件修改后綴名.ipa 為 .zip.

      3. 解壓該 .zip 文件. 解壓后的目錄里面會有一個包含着你的 app bundle 文件的 Payload 文件夾.

      4. 打開終端病切換到你的app的Payload文件夾下的 .app bundle 文件夾內,形式如下:

      cd path/to/Payload/your.app

      5. 用 find 命令定位到 Assets.car 文件 .app bundle , 形式如下:

      find . -name 'Assets.car'

      6. 使用 assetutil 命令找到任何包含着 16-bit or P3 的資源文件, 對每個 Assets.car 之行以下命令 :

      sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json

      注:這里的/path/to/a/Assets.car 指的是Assets.car的路徑,不要直接復制!!!使用上一步find命令的結果。

      ------------------2016-09-21更新----------------------------

      -------------------end of the update--------------------------

      7.  打開上一步生成的 /tmp/Assets.json 文件並查找包含有 “DisplayGamut": “P3” 或者相關的內容.  這段json的"Name"字段對應的值就是16位或顯示的γ值為P3的資源文件名.

       

      8.  找到這個資源文件修改為 8位的sRGB形式,重新編譯上傳你的app即可.

       

       

      iOS10 配置須知

      在iOS10中,如果你的App想要訪問用戶的相機、相冊、麥克風、通訊錄等等權限,都需要進行相關的配置,不然會直接crash。
      需要在info.plist中添加App需要的一些設備權限。

      NSBluetoothPeripheralUsageDescription
      訪問藍牙

      NSCalendarsUsageDescription
      訪問日歷

      NSCameraUsageDescription
      相機

      NSPhotoLibraryUsageDescription
      相冊

      NSContactsUsageDescription
      通訊錄

      NSLocationAlwaysUsageDescription
      始終訪問位置

      NSLocationUsageDescription
      位置

      NSLocationWhenInUseUsageDescription
      在使用期間訪問位置

      NSMicrophoneUsageDescription
      麥克風

      NSAppleMusicUsageDescription
      訪問媒體資料庫

      NSHealthShareUsageDescription
      訪問健康分享

      NSHealthUpdateUsageDescription
      訪問健康更新

      NSMotionUsageDescription
      訪問運動與健身

      NSRemindersUsageDescription
      訪問提醒事項

      從2017年1月1日起,強制使用https,所有新提交的 app 默認不允許使用NSAllowsArbitraryLoads來繞過ATS的限制 安全傳輸不再支持SSLv3, 建議盡快停用SHA1和3DES算法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM