๊ธฐํ ํ๋์ ํ๋ ค๋ฉด ์ผ๋จ ๋ง์ดํฌ์ ๋ํ ๊ถํ์ ์ค์ผํ๋ค. ๋ง์ดํฌ๋ฅผ ํตํด์ ๋ค์ด์จ ์๋ฆฌ๋ฅผ ํตํด์ ์๋ฆฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.
react-native-permissions๋ฅผ ์ฌ์ฉํด์ ๊ถํ์ ๋ถ์ฌํ ๊ฒ์ด๋ค.
$ npm install --save react-native-permissions
target 'YourAwesomeProject' do
# …
permissions_path = '../node_modules/react-native-permissions/ios'
pod 'Permission-AppTrackingTransparency', :path => "#{permissions_path}/AppTrackingTransparency"
pod 'Permission-BluetoothPeripheral', :path => "#{permissions_path}/BluetoothPeripheral"
pod 'Permission-Calendars', :path => "#{permissions_path}/Calendars"
pod 'Permission-Camera', :path => "#{permissions_path}/Camera"
pod 'Permission-Contacts', :path => "#{permissions_path}/Contacts"
pod 'Permission-FaceID', :path => "#{permissions_path}/FaceID"
pod 'Permission-LocationAccuracy', :path => "#{permissions_path}/LocationAccuracy"
pod 'Permission-LocationAlways', :path => "#{permissions_path}/LocationAlways"
pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse"
pod 'Permission-MediaLibrary', :path => "#{permissions_path}/MediaLibrary"
pod 'Permission-Microphone', :path => "#{permissions_path}/Microphone"
pod 'Permission-Motion', :path => "#{permissions_path}/Motion"
pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications"
pod 'Permission-PhotoLibrary', :path => "#{permissions_path}/PhotoLibrary"
pod 'Permission-PhotoLibraryAddOnly', :path => "#{permissions_path}/PhotoLibraryAddOnly"
pod 'Permission-Reminders', :path => "#{permissions_path}/Reminders"
pod 'Permission-Siri', :path => "#{permissions_path}/Siri"
pod 'Permission-SpeechRecognition', :path => "#{permissions_path}/SpeechRecognition"
pod 'Permission-StoreKit', :path => "#{permissions_path}/StoreKit"
end
์ฌ์ฉ ํ ์ ์๋ ๊ถํ๋ค์ธ๋ฐ, ์ด์ค microphone์ ์ฌ์ฉํ ๊ฒ์ด๋ค. podfile์ ์ถ๊ฐํด์ค๋ค.
<key>NSAppleMusicUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSCalendarsUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSCameraUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSContactsUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSFaceIDUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSLocationTemporaryUsageDescriptionDictionary</key>
<dict>
<key>YOUR-PURPOSE-KEY</key>
<string>YOUR TEXT</string>
</dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSMicrophoneUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSMotionUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSRemindersUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSSpeechRecognitionUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSSiriUsageDescription</key>
<string>YOUR TEXT</string>
<key>NSUserTrackingUsageDescription</key>
<string>YOUR TEXT</string>
์ด๊ฒ ์ญ์ ์ฌ์ฉํ ๊ถํ๋ค๋ง ์ถ๊ฐํด์ค๋ค. ๋ ๊ฐ์๊ฒฝ์ฐ <string>YOUR TEXT</string> <key>NSMicrophoneUsageDescription</key>๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ค. info.plist์ ์ถ๊ฐ.
์ฌ์ฉ
useEffect(() => {
const requestPermission = () => {
request(PERMISSIONS.IOS.MICROPHONE).then(response => {
console.log(response);
});
};
requestPermission()
}, []);
์ด ์๋ฌ๋ฅผ ๋ง๋๋ค๋ฉด
xcode → product → clean build
Workaround for use_frameworks! issues
If you use use_frameworks!, add this at the top of your Podfile, and uncomment the line corresponding to your CocoaPods version:
`use_frameworks!
Convert all permission pods into static libraries
pre_install do |installer| Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
installer.pod_targets.each do |pod| if pod.name.eql?('RNPermissions') || pod.name.start_with?('Permission-') def pod.build_type; # Uncomment the line corresponding to your CocoaPods version # Pod::BuildType.static_library # >= 1.9 # Pod::Target::BuildType.static_library # < 1.9 end end end end`
android ์ ๋ํ ์ ๋ณด๋ ํ์ํ๋ฉด~
https://flamingotiger.github.io/frontend/ReactNative/react-native-permissions/
React native Permissions ์ฌ์ฉํ์ฌ ๊ถํ ํ์ธํ๊ธฐ
์์ํ๊ธฐReact native permissions ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด์ ์ด ๊ธฐ๊ธฐ์์ ๊ถํ์ด ํ์ฉ๋์๋์ง ์ฌ๋ถ๋ฅผ ์ฒดํฌํ ์ ์์ต๋๋ค.์๋๋ก์ด๋์์๋ React native์ ๋ด์ฅ๋ PermissionsAndroid ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์์ต๋
flamingotiger.github.io
๊ถํ flow์ ๋ํ ์ ๋ณด๋ ์์ผ๋ ํ์ํ๋ฉด ํ์ธ
react-native-permissions
An unified permissions API for React Native on iOS, Android and Windows. Latest version: 3.7.3, last published: 2 days ago. Start using react-native-permissions in your project by running `npm i react-native-permissions`. There are 203 other projects in th
www.npmjs.com
'๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ์กํธ๋ก ์นด์นด์ค๋งต ์ฌ์ฉํ๊ธฐ (0) | 2023.07.06 |
---|---|
React Native App ์ด๋ ๊ธฐ๋ก ์ฑ (0) | 2023.03.04 |
IOS Debugger ์์ผ์ง ๋ (0) | 2023.03.02 |
React native Login with google, firebase (0) | 2023.03.02 |