자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi IOS 앱 환경설정관련 문의사항입니다 ( 파일 저장 )
2019.11.04 11:14
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
* 사용 개발툴 버전 : Delphi 10.3 ( Rio ) / Xcode 10.3 / PAServer 20
* 테스트 단말기 모델명 : Iphone 7 plus ( 12.4 )
* 테스트 단말기 O/S 버전 : Windows 10 / Mac OS 10.14.6
* 질문 내용 :
1. 우선 환경설정값 저장함수입니다.
procedure TConn_APIs.Write_LoginInfo_INIFiles(PackageNm, userID, userPW : String; userAuto : Boolean);
var
sExeName : String;
iniFile : TIniFile;
begin
sExeName := ExtractFilePath( TPath.GetHomePath );
// 예: "C:\Users\MWRoh\AppData\Gage119.INI" 파일로 저장됨
// 예: /data/data/<application ID>/files
// sExeName := ExtractFilePath( TPath.GetLibraryPath );
// 예: 실행파일과 동일한 디렉토리에 "Gage119.INI" 파일로 저장됨
// 예: /data/app-lib/<application ID>-1
iniFile := TIniFile.Create( sExeName + TPath.DirectorySeparatorChar + 'Gage119.INI' );
iniFile.WriteString( 'GAGE119', 'POS_TYPE', PackageNm );
iniFile.WriteString( 'GAGE119', 'USER_ID' , userID );
iniFile.WriteString( 'GAGE119', 'USER_PW' , userPW );
if userAuto = True then
iniFile.WriteString( 'GAGE119', 'AUTO', 'T' )
else
iniFile.WriteString( 'GAGE119', 'AUTO', 'F' );
iniFile.Free;
end;
2. 위 함수를 이용해서 윈도우나 안드로이드 환경에서는 정상적으로 저장이 되나
아이폰 환경에서는 아래 첨부이미지 처럼 에러가 발생합니다.
이부분은 권한문제인거 같은데요 이부분을 권한을 주는 방법에 대해서 도움을 요청드립니다.
댓글 2
Delphi IOS 앱 환경설정관련 문의사항입니다 ( 파일 저장 )
2019.11.04 11:14
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
* 사용 개발툴 버전 : Delphi 10.3 ( Rio ) / Xcode 10.3 / PAServer 20
* 테스트 단말기 모델명 : Iphone 7 plus ( 12.4 )
* 테스트 단말기 O/S 버전 : Windows 10 / Mac OS 10.14.6
* 질문 내용 :
1. 우선 환경설정값 저장함수입니다.
procedure TConn_APIs.Write_LoginInfo_INIFiles(PackageNm, userID, userPW : String; userAuto : Boolean);
var
sExeName : String;
iniFile : TIniFile;
begin
sExeName := ExtractFilePath( TPath.GetHomePath );
// 예: "C:\Users\MWRoh\AppData\Gage119.INI" 파일로 저장됨
// 예: /data/data/<application ID>/files
// sExeName := ExtractFilePath( TPath.GetLibraryPath );
// 예: 실행파일과 동일한 디렉토리에 "Gage119.INI" 파일로 저장됨
// 예: /data/app-lib/<application ID>-1
iniFile := TIniFile.Create( sExeName + TPath.DirectorySeparatorChar + 'Gage119.INI' );
iniFile.WriteString( 'GAGE119', 'POS_TYPE', PackageNm );
iniFile.WriteString( 'GAGE119', 'USER_ID' , userID );
iniFile.WriteString( 'GAGE119', 'USER_PW' , userPW );
if userAuto = True then
iniFile.WriteString( 'GAGE119', 'AUTO', 'T' )
else
iniFile.WriteString( 'GAGE119', 'AUTO', 'F' );
iniFile.Free;
end;
2. 위 함수를 이용해서 윈도우나 안드로이드 환경에서는 정상적으로 저장이 되나
아이폰 환경에서는 아래 첨부이미지 처럼 에러가 발생합니다.
이부분은 권한문제인거 같은데요 이부분을 권한을 주는 방법에 대해서 도움을 요청드립니다.
TPath.GetHomePath를 사용하셨습니다. TPath.GetDocumentsPath 사용을 권장합니다.
iOS에서 TPath.GetDocumentsPath는 iOS 샌드박스 영역으로 앱에서 접근할 수 있는 보호된 영역입니다.
'/var/mobile/Applications/<application ID>/Documents'
TPath에서 제공하는 경로는 다음 링크에서 자세히 살펴보실 수 있습니다.
http://docwiki.embarcadero.com/RADStudio/Rio/en/Standard_RTL_Path_Functions_across_the_Supported_Target_Platforms
——————
답글이 도움이 되셨는지 다른 분들도 참고할 수 있도록 결과 댓글 부탁드립니다.
(결과 댓글이 없는 경우 다른 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)