14 FAQ
14.1 Demo 中使用私有 API 上架被拒
問題:違反蘋果審核條款 2.5.1 中的說明,關鍵字:App-Prefs:root=
解決:2.4.0 及以下版本 Demo 中使用了蘋果私有 API,造成 App 審核被拒可修改以下程式碼(PLVVodPlayerSkin.m)
NSURL *settingURL = [NSURL URLWithString:@"App-Prefs:root=Privacy&path=PHOTOS"];
更新為
NSURL *settingURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
14.2 在 iOS 9 及以上版本中執行企業版應用
在 iOS 9 中及以後的版本中,蘋果對企業簽名的應用執行時,進行了更嚴格的限制。因此,在 iOS 9 中,企業簽名後的應用安裝好之後,是無法直接啟動的。預設情況下,在 iOS 9 中執行一款企業簽名的應用時,會彈出這樣的提示:

可以看到,應用不再是像之前的版本那樣直接啟動,而是彈出了一個安全提示。此時,如果我們確認要執行的應用是安全的,可以按照以下步驟來設定:
在系統中開啟 设置 - 通用 - 描述文件与设备管理(在 iOS 9.2 以後稱為:设备管理),此時,可以看到有一個和剛剛彈出的提示中文字類似的描述檔。然後,點擊對應描述檔進入後,再點擊按鈕 信任,來讓系統允許擁有這個憑證的應用執行。
之後,我們就可以回到桌面,重新執行剛才的應用,就會發現應用可以正常開啟了。
完整的步驟,如下圖所示:

14.3 阿里 HTTPDNS 庫衝突問題解決
第一步: 整合不帶 HttpDNS 庫的點播 SDK 版本
點播 SDK v2.8.1 版本之前:
pod 'PolyvVodSDK/NoAliLib', '~>2.8.0'
點播 SDK v2.9.0 版本之後
pod 'PolyvVodSDK/NoAli', '~>2.9.0'
第二步:將以下三個點播 SDK 所需要的 HttpDNS 依賴庫根據衝突情況單獨整合:
'PolyvAliHttpDNS/AlicloudHttpDNS', '~> 1.7.4'
'PolyvAliHttpDNS/AlicloudUtils', '~> 1.7.4'
'PolyvAliHttpDNS/UTDID', '~> 1.7.4'
舉例:
如果客戶既整合了點播 2.9.1 SDK,又整合了支付寶 SDK(包含 UTDID),則解決衝突的整合方案如下,
pod 'PolyvVodSDK/NoAli', '~>2.9.0'
pod 'PolyvAliHttpDNS/AlicloudHttpDNS', '~> 1.7.4'
pod 'PolyvAliHttpDNS/AlicloudUtils', '~> 1.7.4'
14.4 如何修改倍速選項
舊版點播 iOS SDK 的倍速「選項列表」屬於 Demo 皮膚 UI 層配置。如果你使用舊版 Demo 自帶的皮膚(速率選擇面板 PLVVodPlaybackRatePanelView),需要修改倍速面板裡維護的 playbackRates 陣列,來新增/刪除/調整倍速檔位。
下面以 新增 2.5 倍速 為例說明。
步驟說明
- 步驟 1:修改
PLVVodPlaybackRatePanelView.m的playbackRates
檔案路徑:
polyv-ios-vod-sdk-demo/PolyvVodSDKDemo/PolyvOpenSourceModule/Skin/View/PLVVodPlaybackRatePanelView.m
修改前:
if (@available(iOS 16.0, *)) {
self.playbackRates = @[@0.5, @0.75, @1.0, @1.25, @1.5, @2.0, @3.0];
} else {
self.playbackRates = @[@0.5, @0.75, @1.0, @1.25, @1.5, @2.0];
}
修改後:在 2.0 和 3.0 之間插入 2.5(建議保持升序)
if (@available(iOS 16.0, *)) {
self.playbackRates = @[@0.5, @0.75, @1.0, @1.25, @1.5, @2.0, @2.5, @3.0];
} else {
self.playbackRates = @[@0.5, @0.75, @1.0, @1.25, @1.5, @2.0];
}
完成修改後,重新編譯執行 Demo,即可在速率選擇面板中看到新增的 2.5x 選項。
相關說明
- 倍速生效方式:舊版 SDK 透過
PLVVodPlayerViewController.playbackRate來設定倍速;setter 內部會同步到mainPlayer.playbackRate,並通知皮膚層重新整理顯示。 - 系統倍速限制:舊版 SDK 內部對
iOS 16以下做了保護邏輯(讀取playbackRate時最高按2.0處理),因此若你希望提供2.5x/3.0x,建議僅在iOS 16+的檔位列表中開放。
