1泽铛、swiftUI 如何把Unity3的項(xiàng)目集成到原生項(xiàng)目里面下面文章鏈接足夠了
整合 Unity 到 SwiftUI App
2悦冀、如何將Untiy工程集成到OC項(xiàng)目中下面文章足夠了
將 Unity 集成到原生 iOS 應(yīng)用程序中(2020+)
3、在Unity項(xiàng)目中使用了騰訊直播播放器,發(fā)現(xiàn)直播視頻會(huì)崩潰坠陈,只有偶爾能夠播放。
問題排查發(fā)現(xiàn) TXFFmpeg.framework和TXSoundTouch.framework這兩個(gè)簽名跟跟自己簽名不一樣,重新給這兩個(gè)庫(kù)簽名后播放正常毅访。
4、集成Unity的項(xiàng)目后盘榨,上傳Appstore時(shí)候UnityFramwork的 Build phases >Embed Framwork 不能有framwor都需要移動(dòng)到主工程中
5喻粹、如果在導(dǎo)入U(xiǎn)nityFramework頭文件時(shí)候發(fā)現(xiàn)找不到,請(qǐng)檢查UnityFramework.h文件是否是public
5草巡、第三方庫(kù)如何實(shí)現(xiàn)簽名
1.查看framework的簽名證書命令:
codesign -d -vv xxxxx.framework
2.刪除原有的簽名
進(jìn)入到XX.framwork文件夾內(nèi)守呜,刪除_CodeSignature文件夾
3.查看本機(jī)可用的簽名文件,命令:
/usr/bin/security find-identity -v -p codesigning
4.使用簽名文件簽名命令:
codesign -fs "iPhone Developer: ... (...)" xxxxx.framework
6、Unity3d項(xiàng)目使用了libUniWebView.a 跳轉(zhuǎn)H5界面出現(xiàn)崩潰
原因分析
1山憨、swfitUI項(xiàng)目沒有Appdegate 也沒有UIWindow弛饭,所以在啟動(dòng)Unity項(xiàng)目管理類
聲明 var window: UIWindow?
self.window = unityFramework?.appController().window;
2 、添加下面兩個(gè)函數(shù)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
return true
}
@objc public func rootViewController() -> UIViewController {
return UnityManager.shared.unityFramework?.appController().rootViewController ?? UIViewController();
}
3萍歉、如果是OC項(xiàng)目就需要實(shí)現(xiàn)在Appdelegate里面新增下面方法
- (UIViewController *) rootViewController {
return self.unityAppController.rootViewController;
}
參考鏈接
Integrating Unity into native iOS applications
7侣颂、IOS動(dòng)態(tài)更換應(yīng)用圖標(biāo)
參考資料
https://juejin.cn/post/7133526724515463175
代碼swift方法更改圖標(biāo)會(huì)有彈窗提示
采用OC實(shí)現(xiàn)方法實(shí)現(xiàn) 了更改圖標(biāo)不提示
///執(zhí)行換圖標(biāo)的方法
+ (void)exchangeAlternateIconWithName:(NSString *)iconName completeBlock:(void (^)(NSError * _Nullable error))completed {
if ([[UIApplication sharedApplication] respondsToSelector:@selector(supportsAlternateIcons)] &&
[[UIApplication sharedApplication] supportsAlternateIcons])
{
NSMutableString *selectorString = [[NSMutableString alloc] initWithCapacity:40];
[selectorString appendString:@"_setAlternate"];
[selectorString appendString:@"IconName:"];
[selectorString appendString:@"completionHandler:"];
SEL selector = NSSelectorFromString(selectorString);
IMP imp = [[UIApplication sharedApplication] methodForSelector:selector];
void (*func)(id, SEL, id, id) = (void *)imp;
if (func)
{
func([UIApplication sharedApplication], selector, iconName, ^(NSError * _Nullable error) {
completed(error);
});
}
}
}