iOS 개발 JSpatch 온라인 열 복구 기술 안내

2432 단어
JSpatch 는 iOS 동적 업데이트 프레임 워 크 입 니 다. 프로젝트 에 아주 작은 엔진 을 도입 하면 JavaScript 를 사용 하여 Objective - C 네 이 티 브 인 터 페 이 스 를 호출 하여 스 크 립 트 언어의 장점 을 얻 을 수 있 습 니 다. 프로젝트 동적 에 모듈 을 추가 하거나 프로젝트 네 이 티 브 코드 를 교체 하여 동적 으로 bug 를 복원 할 수 있 습 니 다.
JSpatch 의 기본 원 리 는 JS 가 OC 에 문자열 을 전달 하고 OC 는 Runtime 인 터 페 이 스 를 통 해 OC 를 호출 하고 교체 하 는 방법 이다.
JSpatch 는 App 에서 작업 프로 세 스: 시작 할 때마다 app Delegate 에서 서버 에 js 파일 을 요청 합 니 다. 서버 에 있 는 js 파일 버 전과 app 로 컬 버 전이 다 르 면 새로운 패 치가 실 행 될 것 임 을 증명 합 니 다.최신 js 파일 을 로 컬 에 다운로드 하고 열 복 구 를 진행 합 니 다.
JS 는 OC 코드 를 어떻게 바 꿉 니까? OC 의 메시지 전송 메커니즘 을 이용 합 니 다.(이 부분 이 이해 되 지 않 는 경우 좌회전 하면 runtime 프로필 이 있 습 니 다) 1. 기 존의 selector 의 IMP 를 교체 하여 빈 실현 으로 실현 합 니 다. 이렇게 하면 obbc클 라 스 는 메 시 지 를 받 으 면 메 시 지 를 전달 합 니 다.2. 교 체 된 JS 방법 을 JSselector 와 IMP 로 구성 하여 현재 class 에 3 을 추가 한 다음 에 각 교체 방법 류 의 forwadInvocation 의 실현 을 바 꾸 어 차단 합 니 다.차단 한 Invocation 의 selector 가 JSselector 로 바 뀌 면 응답 할 수 있 습 니 다. 바 꿀 대상 방법 임 을 설명 합 니 다. Invocation 에서 파 라 메 터 를 꺼 낸 후 JSselector 의 IMP 를 호출 하여 이 루어 집 니 다.
demo: 1 을 간단하게 사용 하여 가기http://jspatch.com 플랫폼 등록 응용 프로그램 은 appkey 및 sdk 2 를 획득 하고 JSpatch. framework, libz 및 JavaScriptCore. framework 3 를 가 져 옵 니 다. 로 컬 테스트 만 진행 하면 AppDelegate. m 에서 [JSpatch testscriptInBundle] 을 호출 합 니 다.서버 테스트 를 진행 하려 면 [JSpatch startWithAppKey: @ "]; /패 치 업데이트 확인 [JSpatch sync];4. main. js 파일 을 새로 만 들 고 패 치 내용 을 작성 합 니 다.다음 코드 는 온라인 에서 ViewController 의 view 의 backgroundColor 를 빨간색 으로 바 꾸 는 js 코드 를 보 여 줍 니 다.testJSPatch 방법 을 정의 하고 방법 에 색상 을 설정 합 니 다.그리고 view DidLoad 방법 에서 호출 합 니 다.
require('UIColor');
defineClass('ViewController', {
            viewDidLoad: function() {
            self.super().viewDidLoad();
            self.testJsPatch();
            },
            testJsPatch: function() {
            self.view().setBackgroundColor(UIColor.redColor());
            },
            });

문법 을 깊이 공부 하고 싶 지 않 고 사용 하고 싶 은 친구 가 도착 할 수 있 습 니 다.https://github.com/bang590/JSPatchConvertor 언어 변환 기 를 다운로드 하고 oc 코드 를 잘 쓰 면 복사 하면 해당 하 는 js 코드 를 자동 으로 생 성 할 수 있 습 니 다.주의해 야 할 것 은 oc 코드 에 NSLog 가 포함 되 어 있 지 않 습 니 다.
사용 중의 주의 점: 1. 전송 안전: JS 스 크 립 트 는 임의의 OC 방법 을 호출 할 수 있 고 권한 이 매우 크 며 중개인 의 공격 으로 코드 를 교체 하면 비교적 큰 위 해 를 입 힐 수 있 습 니 다.해결 방법: RSA 검 사 를 사용 합 니 다.
2. 실행 안전: 다음 에 보 내 는 JS 스 크 립 트 의 유연성 이 크 고 작은 업데이트 에 해당 하 며 충분 한 테스트 를 하지 않 으 면 crash 등 상황 이 발생 하여 앱 의 안정성 에 영향 을 줄 수 있 습 니 다.해결 방법: 1. 모든 사용자 에 게 한꺼번에 보 내지 않 고 점차적으로 보 냅 니 다.2. 후퇴 를 진행한다.

좋은 웹페이지 즐겨찾기