可爱熊个人博客

[iOS]如何制作越狱版本软件

1.编译生成Distribution版本的程序

2.右击生成的程序,选择显示包内容,选择Info.plist文件添加字段:SigerIdentity,字段值:Apple OS Application Signing

3.创建Payload文件夹,将程序拖进,压缩并更改压缩后缀为*.ipa

4.拖进生成的ipa文件于iTurns或通过同步工具安装即可

IIS日志

IIS日志

默认位置:%systemroot%\system32\logfiles\ 可自由设置。

默认日志格式:ex+年份的末两位数字+月份+日期

文件后缀:.log

如2010年7月30日的日志生成文件是ex100730.log

IIS日志是每个服务器管理者都必须学会查看的,服务器的一些状况和访问IP的来源都会记录在IIS日志中,所以IIS日志对每个服务器管理者非常的重要,seoer也不例外,这点同时也可方便网站管理人员查看网站的运营情况。 Read More…

IE8.0下DIV+CSS网站不居中解决办法

一种在客户端解决

其实解决方法很简单。用IE8浏览器打开你的网站,如果发现错位问题,请不用惊慌。在菜单栏上,打开“工具”选项,在下拉菜单里找到“兼容性视图”,勾选上,你再看,是不是网站没再错位了。

二网站本身解决

IE8对margin:0 auto;这个CSS好像不再有用了,页面不能居中啦,下午回来再看看有什么办法居中,太平洋的前端也说他们公司无视IE8的存在,测试还是以前的版本。
原因找到啦,我把margin:0 auto;写在了body标签中,IE7以下都可以居中,IE8就不行,解决办法是,把这代码写在div大框架中就可以了。

百度搜索的资料:

程序代码
<style type=”text/css”>
body{text-align:center;width:100%;}
#wrap{
text-align:left;
width:560px;
margin:0 auto;
border:1px solid #333;
background-color:#ccc;
}
</style>
<div id=”wrap”> 在所有浏览器中都有效的方法: <pre> 在所有浏览器中都有效的方法: 在所有浏览器中都有效的方法: 在所有浏览器中都有效的方法:
</pre>
</div>

测试空间是否支持ADODB.STREAM的方法

adodb.stream组件的应用范围很广,也很实用,例如文件上传、生成HTML静态页面、获取网页源代码、生成验证码等等,所以,如果您需要用到adodb.stream服务,那么必须在购买空间前确认服务器是否支持该组件。

可以通过如下方法进行测试,把代码保存为asp文件,上传到空间,直接访问,即可检测。

<%

on error resume next

dim objstream
set objstream = CreateObject(“adodb.stream”)
objstream.Open

if err.number <> 0 then
err.Clear
response.Write “服务器不支持adodb.stream组件!”
else
response.Write “服务器支持adodb.stream组件!”
end if

%>

Read More…

In-app Purchase “ready to submit”, but won’t let me submit it

I was having the same problem. It would not let me submit my In app purchases to my app, which I uploaded shortly beforehand. I had to reject the binary, then follow the directions below to add the IAP to the app version before uploading.

  1. Go to iTunes Connect
  2. Click on Manage your applications
  3. Click on the App
  4. Click “View Details” button
  5. Scroll down until you see an “In App Purchase” Section
  6. Add your In App Purchase to that version.
  7. Then ready your app for upload.

Once these steps are complete, the In App Purchase should automatically change from “Ready to Submit” to “Waiting for Review”.

关于iphone的push

首先说, 何为Push?
拿起你的爱机, 打开”设置”, 你会看到有一项叫做”通知”.
为什么这里不叫推送呢? 因为推送(Push)的全称叫”推送通知(Push Notifications)”, 对应的还有另一种通知叫”本地通知(Local Notifications)”.
二者的区别就在于推送通知来自于互联网, 是走流量的, 而本地通知只是由后台运行的程序发起, 由系统代为显示而已, 不涉及到网络.


Push消息从哪来?
你所收到的所有Push通知都只有一个来源, 那就是苹果推送通知服务.


Push消息是怎么来的? Read More…

APNS推送通知的流程

下面是我的所有部署配置过程。

1. 将app注册notification里面, 并从APNS上获取测试机的deviceToken.

复制代码

  1. – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  2.     [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
  3.         // other codes here.
  4.     return YES;
  5. }
  6. – (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  7.     NSLog(@”deviceToken: %@”, deviceToken);
  8. }
  9. – (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
  10.     NSLog(@”Error in registration. Error: %@”, error);
  11. }
  12. – (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
  13. {
  14.     NSLog(@”收到推送消息 : %@”,[[userInfo objectForKey:@”aps”] objectForKey:@”alert”]);
  15.     if ([[userInfo objectForKey:@”aps”] objectForKey:@”alert”]!=NULL) {
  16.         UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@”推送通知”
  17.                                                         message:[[userInfo objectForKey:@”aps”] objectForKey:@”alert”]
  18.                                                        delegate:self
  19.                                               cancelButtonTitle:@”关闭”
  20.                                               otherButtonTitles:@”更新状态”,nil];
  21.         [alert show];
  22.         [alert release];
  23.     }
  24. }

启动程序,将app注册到通知项后,在console里面找到打印的deviceToken: Read More…

程序内购买(IAP)详解【转载】

一、In App Purchase概览

Store Kit代表App和App Store之间进行通信。
程序将从App Store接收那些你想要提供的产品的信息,并将它们显示出来供用户购买。
当用户需要购买某件产品时,程序调用StoreKit来收集购买信息。
Store Kit的API只是为程序添加In App Purchase功能的一小部分。你需要决定如何去记录那些你想要提交的产品,如何在程序中将商店功能展现给用户,还要考虑如何将用户购买的产品提交。本章的剩余部分会展示整个流程。

Products
产品可以是任意一项你想要出售的特性。产品在iTunes Connect中被组织,这和你添加一个新的App是一样的。支持的产品种类共有四种:
1. 内容型。包括电子书,电子杂志,照片,插图,游戏关卡,游戏角色,和其他的数字内容。
2. 扩展功能。这些功能已经包含在App内部。在未购买之前被锁定。例如,你可以在一个游戏程序中包含若干个小游戏,用户可以分别来购买这些游戏。
3. 服务。允许程序对单次服务收费。比如录音服务。
4. 订阅。支持对内容或服务的扩展访问。例如,你的程序可以每周提供财务信息或游戏门户网站的信息。应该设定一个合理的更新周期,以避免过于频繁的
提示困扰用户。要记住:你将负责跟踪订阅的过期信息,并且管理续费。App Store不会替你监视订阅的周期,也不提供自动收费的机制。

In App Purchase为创建产品提供了一种通用的机制,如何操作将由你负责。当你设计程序的时候,有以下几点需要注意:

1. 你必须提供电子类产品和服务。不要使用In App Purchase 去出售实物和实际服务。
2. 不能提供代表中介货币的物品,因为让用户知晓他们购买的商品和服务是很重要的。 Read More…

苹果购买信息的键

键名 描述
quantity 购买商品的数量。对应SKPayment对象中的quantity属性
product_id 商品的标识,对应SKPayment对象的productIdentifier属性。
transaction_id 交易的标识,对应SKPaymentTransaction的transactionIdentifier属性
purchase_date 交易的日期,对应SKPaymentTransaction的transactionDate属性
original_-transaction_id 对于恢复的transaction对象,该键对应了原始的transaction标识
original_purchase_-date 对于恢复的transaction对象,该键对应了原始的交易日期
app_item_id App Store用来标识程序的字符串。一个服务器可能需要支持多个server的支付功能,可以用这个标识来区分程序。链接sandbox用来测试的程序的不到这个值,因此该键不存在。
version_external_-identifier 用来标识程序修订数。该键在sandbox环境下不存在
bid iPhone程序的bundle标识
bvrs iPhone程序的版本号

php修改文件名函数

修改文件名的函数,rename($o,$n),$o是旧文件名,$n要被修改成的新文件名哦。下面我们来看一款关于重名命文件名的实例

<?php session_start();
if($submit==”提交”){
if (file_exists( $old_name)){
if (rename($old_name,$new_name )) //把原文件重新命名
{echo “修改成功!”;}
}else{ print $old_name.”文件不存在!<br>” ; }
}
?>