android studio 配置debug签名,Android Studio配置debug下使用正式簽名調試

今天在集成微信分享功能的時候,按照官方文檔一步一步來寫。這是向微信發送我們想要分享的內容,各類的方法大家去看文檔,代碼如下: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_deny直接吐司show出來。這可把我郁悶了。這是為什么,繼續檢查一遍代碼,確定沒有問題,因此想到微信該死的應用簽名,說實話,我還是挺喜歡這簽名,畢竟對於應用的安全性有了很大的提高。我靠,突然發現,曾經的生成的簽名文件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'

}

}

測試,失敗,我的心也是拔涼拔涼的。風蕭蕭兮易水寒,壯士一去兮不復返。收拾舊河山,重新打個正式包。繼續測試:

OK ,通過。

突然波瀾不驚。因為覺得這都通不過,我應該卸甲歸田了。我想的是我們平常都在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下使用正式簽名。是不是有點移花接木的味道啊。

總結:集成第三方的東西關鍵在於細心,過程不難,但是往往細節決定成敗。

你可能感兴趣的:(android,studio,配置debug签名)