更新日期:2025年 04月 08日之前接入旧版本的游戏如何快速迭代支持IPA出包
<span style="font-size:14px;">接入过QuickSDK旧版本的游戏更新至V2.6.1及以上版本说明:</span><br />
<br />
<span style="font-size:14px;">1. 替换SMPCQuickSDK.framework</span><br />
<p>
<span style="color:#E53333;font-size:14px;">注意:SMPCQuickSDK.framework仍为静态库设置为Do Not Embed,不需要也不能设置为Embed & Sign,</span><span style="font-size:14px;color:#E53333;">如果带Unityframework动态库,SMPCQuickSDK.framework仅关联到</span>
</p>
<p>
<span style="font-size:14px;color:#E53333;">Unityframework即可</span>
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<span style="font-size:14px;">2. 将原工程的libSMPCQuickChannel.a 文件移除,添加QuickChannel.framework 动态库文件并设置为Embed & Sign </span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20241114/20241114111207PtjV618.png" alt="" />
</p>
<p>
<span style="color:#E53333;font-size:14px;">如果带Unityframework动态库,QuickChannel.framework同时关联到Unityframework和Unity-iPhone, Unityframework不需要设置为 </span><span style="color:#E53333;font-size:14px;">Embed & Sign,</span>
</p>
<p>
<span style="color:#E53333;font-size:14px;">Unity-iPhone必须设置为 Embed & Sign</span>
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;">3. 检查target->Build Setting - Runpath Search Paths是否包含@executable_path/Frameworks如果没有请添加;如果有请跳过此步骤执行下一步骤</span>
</p>
<p>
<span style="font-size:14px;"><br />
</span>
</p>
<p>
<img src="https://staticsite.quickapi.net/data/newFiles/20241114/2024111411130872xR228.png" alt="" />
</p>
<p>
<br />
</p>
<p>
<span style="font-size:14px;">4. AppDelegate事件调用 (必接)</span>
</p>
<p>
<br />
<span style="font-size:14px;">说明:对能够使用OC接口的开发者这些回调应该比较容易添加,为了减轻大部分开发者负担,Unity3D和Cocos2d-x的游戏不用接入下面事件调用的代码,打包工具将会自动添加。</span><span style="font-size:14px;">打包工具在Unity3d和cocos2d-x默认系统生命周期delegate文件中添加如下代码,进行并不严格的排重,如果开发者修改了默认的delegate文件将导致添加失败,请自行在修改后的delegate文件中添加</span>
</p>
<p>
<br />
<span style="font-size:14px;">如果使用IPA出包,以下代码打包工具无法自动添加,请开发人员务必添加到母包工程系统代理类里面,通常情况下:</span><br />
<span style="font-size:14px;">原生Objective-C工程在AppDelegate.m对应系统代理回调方法中添加以下代码</span>
</p>
<p>
<span style="font-size:14px;">Unity工程在UnityAppController.mm对应系统代理回调方法中添加以下代码</span><br />
<span style="font-size:14px;">Cocos2d工程在AppController.mm对应系统代理回调方法中添加以下代码</span>
</p>
<p>
<span style="font-size:14px;">如果开发者修改了或者自定义了默认的系统delegate文件,请在修改后或者自定义的delegate文件中添加</span>
</p>
<p>
<span style="font-size:14px;"> </span>
</p>
<pre class="brush:js;toolbar:false">- (void)applicationWillResignActive:(UIApplication *)application {
[[SMPCQuickSDK defaultInstance] applicationWillResignActive:application];
}
- (void) applicationDidEnterBackground:(UIApplication *)application {
[[SMPCQuickSDK defaultInstance] applicationDidEnterBackground:application];
}
- (void) applicationWillEnterForeground:(UIApplication *)application {
[[SMPCQuickSDK defaultInstance] applicationWillEnterForeground:application];
}
- (void) applicationDidBecomeActive:(UIApplication *)application {
[[SMPCQuickSDK defaultInstance] applicationDidBecomeActive:application];
}
- (void) applicationWillTerminate:(UIApplication *)application {
[[SMPCQuickSDK defaultInstance] applicationWillTerminate:application];
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[[SMPCQuickSDK defaultInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
[[SMPCQuickSDK defaultInstance] application:application didFailToRegisterForRemoteNotificationsWithError:error];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo{
[[SMPCQuickSDK defaultInstance] application:application didReceiveRemoteNotification:userInfo];
}
-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
{
[[SMPCQuickSDK defaultInstance] application:application supportedInterfaceOrientationsForWindow:window];
return UIInterfaceOrientationMaskAll;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
[[SMPCQuickSDK defaultInstance] openURL:url application:application];
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
[[SMPCQuickSDK defaultInstance] openURL:url sourceApplication:sourceApplication application:application annotation:annotation];
return YES;
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<nsstring*,> *)options{
[[SMPCQuickSDK defaultInstance] openURL:url application:app options:options];
return YES;
}
</pre>
<br />
<p>
<br />
</p>
<p>
<span style="font-size:14px;">5. 母包测试通过后,通过母包工程导出ipa包,使用</span><span style="font-size:14px;">3.1.3及以上版本</span><span style="font-size:14px;">打包工具,选择ipa母包出各渠道包</span>
</p>
<p>
<span style="font-size:14px;"> 如何导出ipa母包可参考文档:</span><a href="https://www.quicksdk.com/doc-1115.html?cid=32" target="_blank"><u><span style="font-size:14px;">如何导出iOS的ipa母包</span></u></a>
</p>
<span style="font-size:14px;"></span><br />
<br />
<div style="white-space:nowrap;">
<br />
</div>