Android Studio 구성 debug에서 공식 서명 디버그 사용

7980 단어
오늘은 위챗 공유 기능을 통합할 때 공식 문서에 따라 한 걸음 한 걸음 쓴다.이것은 위챗으로 우리가 공유하고 싶은 내용을 보내는 것입니다. 여러 가지 방법으로 여러분은 문서를 보십시오. 코드는 다음과 같습니다.
 IWXAPI api = MyApplication.getInstance().getWxApi();
                if (!api.isWXAppInstalled()) {
                    ToastFactory.getToast(activity, "          ").show();
                    return;
                }
                WXWebpageObject webpage = new WXWebpageObject();
                webpage.webpageUrl = notice.getUrl();
                WXMediaMessage msg = new WXMediaMessage(webpage);
                msg.title = notice.getDesc();
                msg.description = notice.getDesc();
                Bitmap thumb = BitmapFactory.decodeResource(activity.getResources(),
                        R.drawable.umeng_socialize_wechat);
                msg.setThumbImage(thumb);
                SendMessageToWX.Req req = new SendMessageToWX.Req();
                req.transaction = String.valueOf(System.currentTimeMillis());
                req.message = msg;
                req.scene = SendMessageToWX.Req.WXSceneSession;
                api.sendReq(req);

여기까지 썼으니 다 쓴 셈이다.만약 우리가 발송에 성공했는지 알고 싶다면 이렇게 써도 된다.
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wxentry);
        IWXAPI iwxapi = HHcookApp.getInstance().getWxApi();
        iwxapi.handleIntent(getIntent(),this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        finish();
    }

    @Override
    public void onReq(BaseReq baseReq) {

    }

    @Override
    public void onResp(BaseResp resp) {

        String result = "";

        switch (resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                result = "errcode_success";
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                result = "errcode_cancel";
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
                result = "errcode_deny";
                break;
            default:
                result = "errcode_unknown";
                break;
        }
        ToastFactory.getToast(this,result).show();
    }
}

좋아, 코드를 다 썼으니 만사대길해.하지만 테스트 위챗 직접 거절,errcode데니가 직접 토스트쇼 나와.이것은 정말 나를 우울하게 한다.왜냐하면 코드를 계속 한 번 검사해서 문제가 없다는 것을 확인했기 때문에 위챗 빌어먹을 앱 서명을 생각했다. 솔직히 나는 이 서명을 매우 좋아한다. 왜냐하면 앱의 안전성이 크게 향상되었기 때문이다.나는 갑자기 생성된 서명 파일 xxx를 발견했다.jks는 잃어버렸어요.그래, 내가 잘못했어. 교환 앱 서명을 다시 만들어서 심사에 제출해.아...몇 시간 기다렸어요.마침내 심사에 통과되었다.나는 흥미진진하게build에 있다.gradle 파일에 다음과 같은 코드 설정이 설치되어 있습니다. 여기에 주의하십시오.jks 파일은 app의 루트 디렉터리를 복사했습니다:
  signingConfigs {
        release {
            keyAlias 'xxx'
            keyPassword 'xxxx'
            storeFile file('./xxx.jks')
            storePassword 'xxx'
        }
        config {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('./xxx.jks')
            storePassword 'xxx'
        }
    }

테스트, 실패, 내 마음도 시원해.바람은 소소하고 역수는 차디차니, 장사는 한번 가면 다시 돌아오지 않는구나.낡은 강산을 정리하고 다시 정식으로 포장하다.테스트를 계속하려면 다음과 같이 하십시오.
오케이, 통과.갑자기 파도가 일지 않다.이것도 통하지 않을 것 같아서, 나는 갑옷을 벗고 밭에 돌아가야 한다.내가 생각하는 것은 우리가 평소에 debug 모드에서 디버깅을 하는 것이다. 즉, 내가 사용하는 정식 응용 서명이다. 내가 사용해 본 debug 서명과는 다르다.그럼 내가 매번 디버깅을 할 때마다 포장을 해야 하는 것이 아니겠는가. 분명히 이것은 불합리한 것이다.그래서 나는 이렇게 썼다.
defaultConfig {
        applicationId "xxx.xxx.xxx"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.release
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable true
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release
        }
    }

좋아, 테스트, debug 모드에서 통과, 그래.기본적으로 위챗 공유 기능을 완성한 이유는 무엇일까?signingConfig signingConfigs.release는 apk를 다시 명명하고 debug에서 정식 서명을 사용하는 것과 같다.꽃접목 냄새 나지 않아요?
총괄: 제3자를 집적하는 것은 세심하고 과정이 어렵지 않지만 세부적인 것이 성패를 결정한다.

좋은 웹페이지 즐겨찾기