1. 程式人生 > >Expo大作戰(二十三)--expo中expo kit 高級屬性(沒幹貨)

Expo大作戰(二十三)--expo中expo kit 高級屬性(沒幹貨)

alt 指定 rgba 生成 constant 公眾 就是 shell. cloud

技術分享圖片

簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網

我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732981

【之前我寫過一些列關於expo和rn入門配置的東i西,大家可以點擊這裏查看:從零學習rn開發】

相關文章:

Expo大作戰(一)--什麽是expo,如何安裝expo clinet和xde,xde如何使用

Expo大作戰(二)--expo的生命周期,expo社區交流方式,expo學習必備資源,開發使用expo時關註的一些問題

Expo大作戰(三)--針對已經開發過react native項目開發人員有針對性的介紹了expo,expo的局限性,開發時項目選型註意點等

Expo大作戰(四)--快速用expo構建一個app,expo中的關鍵術語

Expo大作戰(五)--expo中app.json 文件的配置信息

Expo大作戰(六)--expo開發模式,expo中exp命令行工具,expo中如何查看日誌log,expo中的調試方式

Expo大作戰(七)--expo如何使用Genymotion模擬器

Expo大作戰(八)--expo中的publish以及expo中的link,對link這塊東西沒有詳細看,大家可以來和我交流

更多>>

接下來就開始擼碼


高級ExpoKit主題

本指南更深入地介紹了一些不是很重要的ExpoKit主題,但您可能會遇到困難。如果您對ExpoKit不熟悉,您可能需要先閱讀ExpoKit指南。

取消分離(Un-detaching)

例如,如果您想要返回到僅限JS的狀態,或者想要為測試目的而重復分離,可以手動“取消”分離項目。由於您的項目不會再被分離,您將不再能夠使用自定義本機代碼。

警告:以下說明將永久刪除項目中的本機iOS和Android代碼,包括您所做的任何更改。我們強烈建議您在嘗試此操作之前將更改提交到版本控制。

要取消分離的做法:

  • 從你的項目中刪除ios和android目錄。
  • 刪除isDetached並從項目的app.json中分離鍵。

你現在可以像普通的expo項目一樣使用你的項目(沒有ExpoKit)。

驗證軟件包(僅限iOS)(Verifying Bundles (iOS only))

當我們為您的ExpoKit項目提供空中服務(over-the-air)時,我們會包含一個簽名,以便您的項目可以驗證JS實際上來自我們的服務器。

默認情況下,使用ExpoKit的項目在iOS上禁用此功能並在Android上啟用。我們鼓勵您在iOS上啟用它,以便為您的所有用戶驗證您的代碼。

使用ExpoKit在本地項目中啟用代碼驗證:

  • 滿足這兩個要求之一(你只需要一個):
    •   配置應用程序時使用非通配符包標識符(推薦)
    •   在Capabilities下的Xcode項目設置中啟用Keychain Sharing。 (更快建立)
  • 在ios / your-project / Supporting / EXShell.plist中,將isManifestVerificationBypassed設置為NO(或者完全刪除此密鑰)。

禁用expo分析(Disabling Expo Analytics)

默認情況下,使用ExpoKit的應用程序將跟蹤一些expo特定的使用情況統計。這包括在我們的隱私政策中。您可以按照以下步驟在您的應用中停用Expo分析:

在iOS上,將值EXAnalyticsDisabled添加到應用程序的主Info.plist中,值為YES。

配置JS URL

在開發中,您的ExpoKit項目將從XDE / exp請求您的本地構建。您可以在EXBuildConstants.plist(iOS)或ExponentBuildConstants(Android)中看到此配置。您不需要編輯它,因為它在您提供項目時會自動編寫。

在生產環境中,您的ExpoKit項目將要求您發布的JS包。這是在EXShell.plist(iOS)和MainActivity.java(Android)中配置的。如果您想在iOS中指定自定義行為,則還可以設置[ExpoKit sharedInstance] .publishedManifestUrlOverride屬性。

在iOS上啟用可選展示模塊

一些Expo模塊不包含在由exp build生成的獨立iOS應用程序中。通常這是因為他們向二進制文件添加了不成比例的膨脹量,或者因為它們包含受額外Apple審查指導原則支配的API。現在這些模塊是:

  • FaceDetector
  • ARKit
  • Payments

如果你想在你的Expo iOS應用程序中使用這些模塊中的任何一個,你需要分離到ExpoKit而不是使用exp build。 (這是我們的改進之路。)在您的ExpoKit項目中,您需要在Podfile中包含相應的subspec。默認情況下,不包含任何內容。

使用DocumentPicker(Using DocumentPicker)

在iOS Expokit項目中,DocumentPicker模塊需要iCloud權利才能正常工作。如果您的應用程序尚未安裝,則可以通過在Xcode中打開項目並按以下步驟添加它:

  • 在項目中,轉到功能選項卡。
  • 將iCloud開關設置為打開。
  • 檢查iCloud文件復選框。

如果一切正常,你的屏幕應該是這樣的:

技術分享圖片


下一張繼續介紹,這一篇主要介紹了:expo中expo kit 高級屬性,歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公

眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!

技術分享圖片

Expo大作戰(二十三)--expo中expo kit 高級屬性(沒幹貨)