[英]Info.plist file for react native ios app using expo SDK
[英]How to configure Info.plist file in ejected react-native app uses expo sdk
我使用react-native ini projectName
創建了一個應用程序,並添加了一個名為react-native-facebook-account-kit
的本地模塊包,我需要更改 ios 文件夾中的 Info.plist 並添加應用程序 ID 和客戶端令牌信息。 我還創建了一個 pod 文件,正如 facebook 文檔所說。 它工作正常。 然后我試着在世博會上做一模一樣的東西。 所以我使用這個 cli 創建一個新項目create-react-native-app projectName
然后我運行npm run eject
並選擇第二個選項,它同時使用 react-native 和 expo sdk。 所以它成功創建了 ios 和 android 文件夾。
但是在 ios 文件夾中沒有 Info.plist 文件。 經過我的搜索,我找到了這個文檔。 https://docs.expo.io/versions/latest/workflow/configuration#ios我像doc所說的那樣在app.json
添加了一些鍵和值。
{
"expo": {
"sdkVersion": "27.0.0",
"ios": {
"bundleIdentifier": "com.cecil.foxtail",
"infoPlist": {
"FacebookAppID": "myAppId",
"AccountKitClientToken": "myClientToken",
"CFBundleURLTypes": [
// ??? CONFUSED
]
}
},
"android": {
"package": "com.cecil.foxtail"
}
}
}
這是來自應用程序的原始 Info.plist,它運行良好。
<key>FacebookAppID</key>
<string>{app-id}</string>
<key>AccountKitClientToken</key>
<string>{client-token}</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>ak{client-token}</string>
</array>
</dict>
</array>
那么如何將這些數組定義到 app.json 中呢?
您不需要設置自定義 URL 架構,因為 expo 默認將其設置為您的bundleIdentifier
"bundleIdentifier": "com.cecil.foxtail",
所以你可以通過調用這樣的東西從另一個調用你的應用程序:-
let websiteUrl ="https://apps.apple.com/myappInstallationPage";
let SchemaUrl = 'com.cecil.foxtail://';
Linking.canOpenURL(SchemaUrl).then(supported => {
if (supported) {
console.log('accepted');
return Linking.openURL(SchemaUrl);
} else {
console.log('an error occurred');
}
}).catch(err => {
Linking.openURL(websiteUrl).catch(reason => console.log('Failed to open app website!'))
console.log('an error occurred')
});
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.