echo $(uname)   // 输出Darwin   注:Darwin为MacOS的内核

scutil --get ComputerName  // 输出计算机名

scutil --get HostName  // 输出主机名

 

chflags hidden ./crash/  // 隐藏当前目录下的crash文件夹

chflags nohidden "/Users/kekec/12.txt" // 取消对/Users/kekec/12.txt文件的隐藏

SetFile -a V "/Users/kekec/docs/"  // 隐藏/Users/kekec下的docs目录

SetFile -a v "/Users/kekec/docs/"  // 取消对/Users/kekec下的docs目录的隐藏

SetFile -a v "/Users/kekec/12.txt"  // 取消对/Users/kekec/12.txt文件的隐藏

 

zip -r -y -1 UAGame.dSYM.zip UAGame.dSYM // 将当前目录下的UAGame.dSYM目录压缩成UAGame.dSYM.zip(保持原有目录结构)

 

/usr/bin/dsymutil "/Users/admin/UAGroup/R6Game/Binaries/IOS/UAGame"  -o "/Users/admin/UAGroup/R6Game/Binaries/IOS/UAGame.dSYM"  // 从/Users/admin/UAGroup/R6Game/Binaries/IOS/UAGame生成UAGame.dSYM符号表  注:UAGame.dSYM为一个目录

/usr/bin/dsymutil -s "/Users/admin/UAGroup/R6Game/Binaries/IOS/UAGame"  // 打印UAGame中所有的符号

----------------------------------------------------------------------
Symbol table for: 'UAGame' (arm64)
----------------------------------------------------------------------
Index    n_strx   n_type             n_sect n_desc n_value
======== -------- ------------------ ------ ------ ----------------
[     0] 0000e9f7 1e (PEXT SECT    ) 01     0010   0000000100000000 '__mh_execute_header'
[     1] 0000ea0b 0e (     SECT    ) 01     0000   0000000100004000 '-[RNWeakObject parent]'
[     2] 0000ea22 0e (     SECT    ) 01     0000   0000000100004020 '-[RNWeakObject setParent:]'
[     3] 0000ea3d 0e (     SECT    ) 01     0000   0000000100004034 '-[RNWeakObject .cxx_destruct]'
[     4] 0000ea5b 0e (     SECT    ) 01     0000   0000000100004044 '-[UIView(Hippy) hippyTag]'
[     5] 0000ea75 0e (     SECT    ) 01     0000   0000000100004048 '-[UIView(Hippy) setHippyTag:]'
[     6] 0000ea93 0e (     SECT    ) 01     0000   0000000100004068 '-[UIView(Hippy) rootTag]'
[     7] 0000eaac 0e (     SECT    ) 01     0000   000000010000406c '-[UIView(Hippy) setRootTag:]'
[     8] 0000eac9 0e (     SECT    ) 01     0000   000000010000408c '-[UIView(Hippy) onInterceptTouchEvent]'
[     9] 0000eaf0 0e (     SECT    ) 01     0000   00000001000040e4 '-[UIView(Hippy) setOnInterceptTouchEvent:]'
[    10] 0000eb1b 0e (     SECT    ) 01     0000   000000010000415c '-[UIView(Hippy) props]'
[    11] 0000eb32 0e (     SECT    ) 01     0000   0000000100004160 '-[UIView(Hippy) setProps:]'
。。。 。。。
[255544] 00fe15b4 1e (PEXT SECT    ) 01     0000   00000001044290e8 '__ZN14USGGameStatics11GetGameTimeEP7UObject'
[255545] 00fe15e0 1e (PEXT SECT    ) 01     0000   0000000104429130 '__ZN14USGGameStatics18GetGameRunningTimeEP7UObject'
[255546] 00fe1613 1e (PEXT SECT    ) 01     0000   00000001044291f0 '__ZN14USGGameStatics20GetGameRemainingTimeEP7UObject'
[255547] 00fe1648 1e (PEXT SECT    ) 01     0000   00000001044292c0 '__ZN14USGGameStatics23GetGameRemainingTimeStrEP7UObject'
[255548] 00fe1680 1e (PEXT SECT    ) 01     0000   00000001044293d4 '__ZN14USGGameStatics26ShouldGiveBackTeammateItemEP7UObject'
[255549] 00fe16bb 1e (PEXT SECT    ) 01     0000   0000000104429420 '__ZN14USGGameStatics15SetTimeDilationEP7UObjectf'
[255550] 00fe16ec 1e (PEXT SECT    ) 01     0000   0000000104429470 '__ZN14USGGameStatics25AddActorForDestroyInFrameEP7UObjectP6AActor'
[255551] 00fe172e 1e (PEXT SECT    ) 01     0080   00000001044295c8 '__ZN15USGActorStatics20FindComponentByClassI40USGGameStateDestroyActorManagerComponentEEPT_P6AActor'
[255552] 00fe1792 1e (PEXT SECT    ) 01     0000   0000000104429698 '__ZN14USGGameStatics29AddCharacterForDestroyInFrameEP7UObjectP6AActor7FVector'
[255553] 00fe17e0 1e (PEXT SECT    ) 01     0000   0000000104429818 '__ZN14USGGameStatics16SpawnAICharacterEP15ASGAISpawnPointRK5FNamei'
[255554] 00fe1823 1e (PEXT SECT    ) 01     0000   0000000104429e50 '__ZN14USGGameStatics16GetCompareResultEi15ENumCompareTypeii'
[255555] 00fe185f 1e (PEXT SECT    ) 01     0000   0000000104429edc '__ZN14USGGameStatics8DrawIconEP12ASGCharacterP7UCanvasP8UTexture'
[255556] 00fe18a0 1e (PEXT SECT    ) 01     0000   0000000104429ee4 '__ZN14USGGameStatics13GetDeviceNameEv'
[255557] 00fe18c6 1e (PEXT SECT    ) 01     0000   0000000104429fc8 '__ZN14USGGameStatics19GetSimpleDeviceNameEv'
[255558] 00fe18f2 1e (PEXT SECT    ) 01     0000   000000010442a0ac '__ZN14USGGameStatics18MapNameShortToLongERK7FString'
[255559] 00fe1926 0e (     SECT    ) 01     0000   000000010442a58c '__ZZN14USGGameStatics18MapNameShortToLongERK7FStringENK4$_75clI19FLogCategoryLogTempA95_DsJEEEDaRKT_RKT0_PKcDpRKT1_'
[255560] 00fe199a 1e (PEXT SECT    ) 01     0000   000000010442a770 '__ZN14USGGameStatics14SetPlayerWhereEP7UObjecti'
[255561] 00fe19ca 1e (PEXT SECT    ) 01     0000   000000010442a88c '__ZN14USGGameStatics16MarkPackageDirtyEP7UObject'
[255562] 00fe19fb 1e (PEXT SECT    ) 01     0000   000000010442a898 '__ZN14USGGameStatics27WeightedRandomSampling_AResE6TArrayI6TTupleIJP12ASGInventoryfiEE22TSizedDefaultAllocatorILi32EEEi'
[255563] 00fe1a73 1e (PEXT SECT    ) 01     0000   000000010442ab04 '__ZN14USGGameStatics27WeightedRandomSampling_AResE6TArrayIf22TSizedDefaultAllocatorILi32EEEi'
[255564] 00fe1ad0 1e (PEXT SECT    ) 01     0000   000000010442ad9c '__ZN14USGGameStatics16GetDeathDropTypeEP7UObject'
[255565] 00fe1b01 1e (PEXT SECT    ) 01     0000   000000010442addc '__ZN14USGGameStatics16SetDeathDropTypeEP7UObject14EDeathDropType'
[255566] 00fe1b42 1e (PEXT SECT    ) 01     0000   000000010442ae28 '__ZN14USGGameStatics36CheckCharacterCanLootCorpseContainerEP7UObjectyP12ASGInventory'
[255567] 00fe1b97 1e (PEXT SECT    ) 01     0000   000000010442ae84 '__ZN14USGGameStatics41CheckCharacterCanLootCorpseContainerByGIDEP7UObjectyy'
[255568] 00fe1be3 1e (PEXT SECT    ) 01     0000   000000010442aee0 '__ZN14USGGameStatics20PlaceCurseOnTeammateEP7UObjectyy'
[255569] 00fe1c1a 1e (PEXT SECT    ) 01     0000   000000010442af40 '__ZN14USGGameStatics21RemoveCurseOnTeammateEP7UObjectyy'
。。。 。。。

 

上面的符号可以使用c++filt命令来反修饰(Demangle):c++filt __ZN14USGGameStatics16SpawnAICharacterEP15ASGAISpawnPointRK5FNamei //输出:USGGameStatics::SpawnAICharacter(ASGAISpawnPoint*, FName const&, int)

 

/usr/bin/dsymutil --statistics "/Users/admin/UAGroup/R6Game/Binaries/IOS/UAGame"  // 打印如下信息

warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK.framework/BeaconAPI_BaseTVK(BeaconBaseInterface.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK.framework/BeaconAPI_BaseTVK(BeaconErrorPopulator.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK.framework/BeaconAPI_BaseTVK(JCEBaseObject.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK/BeaconAPI_BaseTVK.framework/BeaconAPI_BaseTVK(JceEnumHelper.o) unable to open object file: No such file or directory
。。。 。。。
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/mars/mars/mars.framework/mars(log_zlib_buffer.cc.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/mars/mars/mars.framework/mars(log_zstd_buffer.cc.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/mars/mars/mars.framework/mars(log_crypt.cc.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/mars/mars/mars.framework/mars(uECC.c.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/SuperPlayer/SuperPlayer/SuperPlayer.framework/SuperPlayer(SPWorkerQueue.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/SuperPlayer/SuperPlayer/SuperPlayer.framework/SuperPlayer(SPCGIRequestParam.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/SuperPlayer/SuperPlayer/SuperPlayer.framework/SuperPlayer(SPPlayerUtils.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/SuperPlayer/SuperPlayer/SuperPlayer.framework/SuperPlayer(SPPrepareUtils.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Intermediate/UnzippedFrameworks/SuperPlayer/SuperPlayer/SuperPlayer.framework/SuperPlayer(SPNetVideoInfo.o) unable to open object file: No such file or directory
。。。 。。。
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiBaseCtx.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiBaseMgr.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiClipCtx.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiClipMgr.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiDeviceCtx.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiDeviceMgr.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiNoteCtx.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkSoundEngine.a(AkMidiParseSe.o) unable to open object file: No such file or directory
。。。 。。。
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMemoryMgr.a(rpmalloc.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMemoryMgr.a(AkMemoryMgr.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMemoryMgr.a(AkMemoryMgrBase.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkStreamMgr.a(AkDeviceBase.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkStreamMgr.a(AkDeviceBlocking.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkStreamMgr.a(AkDeviceDeferredLinedUp.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkStreamMgr.a(AkIOMemMgr.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkStreamMgr.a(AkStreamMgr.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkStreamMgr.a(AkTransferDeferred.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkStreamMgr.a(AkIOThread.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMusicEngine.a(MusicNodeProxyConnected.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMusicEngine.a(MusicRanSeqProxyConnected.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMusicEngine.a(MusicSwitchProxyConnected.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMusicEngine.a(MusicTransAwareProxyConnected.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMusicEngine.a(ProxyMusic.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMusicEngine.a(SegmentProxyConnected.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Plugins/Wwise/ThirdParty/iOS/Profile-iphoneos/lib/libAkMusicEngine.a(TrackProxyConnected.o) unable to open object file: No such file or directory
。。。 。。。
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Source/ThirdParty/libPNG/libPNG-1.5.2/lib/ios/Device/libpng152.a(pngwrite.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Source/ThirdParty/libPNG/libPNG-1.5.2/lib/ios/Device/libpng152.a(pngwtran.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/UnrealEngine/Engine/Source/ThirdParty/libPNG/libPNG-1.5.2/lib/ios/Device/libpng152.a(pngwutil.o) unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Launch/Module.Launch.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.1_of_3.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.2_of_3.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.3_of_3.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.gen.1_of_7.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.gen.2_of_7.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.gen.3_of_7.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.gen.4_of_7.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.gen.5_of_7.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.gen.6_of_7.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/AkAudio/Module.AkAudio.gen.7_of_7.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MFGridLevelsRuntime/Module.MFGridLevelsRuntime.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MFGridLevelsRuntime/Module.MFGridLevelsRuntime.gen.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/ProceduralMeshComponent/Module.ProceduralMeshComponent.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/ProceduralMeshComponent/Module.ProceduralMeshComponent.gen.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MFPluginWrapper/Module.MFPluginWrapper.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MFPluginWrapper/Module.MFPluginWrapper.gen.1_of_6.cpp.o unable to open object file: No such file or directory
。。。 。。。
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MovieSceneCapture/Module.MovieSceneCapture.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MovieSceneCapture/Module.MovieSceneCapture.gen.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MoviePlayer/Module.MoviePlayer.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/MoviePlayer/Module.MoviePlayer.gen.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/StreamingPauseRendering/StreamingPauseRendering.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/SlateNullRenderer/Module.SlateNullRenderer.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/NullReplayStreaming/NullNetworkReplayStreaming.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/LocalFileNetworkReplayStreaming/LocalFileNetworkReplayStreaming.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/HttpReplayStreaming/HttpNetworkReplayStreaming.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Advertising/Advertising.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Engine/Module.Engine.1_of_49.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Engine/Module.Engine.2_of_49.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Engine/Module.Engine.3_of_49.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Engine/Module.Engine.4_of_49.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Engine/Module.Engine.5_of_49.cpp.o unable to open object file: No such file or directory
warning: (arm64) /Users/admin/UAGroup/R6Game/Intermediate/Build/IOS/UAGame/Development/Engine/Module.Engine.6_of_49.cpp.o unable to open object file: No such file or directory
。。。 。。。
warning: (arm64) /Volumes/data/workspace/ino/build/MNA.build/Release-iphoneos/MNA.build/Objects-normal/arm64/ino_mna.o unable to open object file: No such file or directory
warning: (arm64) /Volumes/data/workspace/ino/build/MNA.build/Release-iphoneos/MNA.build/Objects-normal/arm64/NSString+IPValidation.o unable to open object file: No such file or directory
warning: (arm64) /Volumes/data/workspace/ino/build/MNA.build/Release-iphoneos/MNA.build/Objects-normal/arm64/MNASimplePing.o unable to open object file: No such file or directory
warning: (arm64) /Volumes/data/workspace/ino/build/MNA.build/Release-iphoneos/MNA.build/Objects-normal/arm64/MNA_vers.o unable to open object file: No such file or directory
warning: (arm64) /Applications/Xcode_10.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a(arclite.o) unable to open object file: No such file or directory
warning: no debug symbols in executable (-arch arm64)
.debug_info section size (in bytes)
-------------------------------------------------------------------------------
Filename                                           Object         dSYM   Change
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Total                                                  0b           0b    0.00%
------------------------------------------------------------------------------

 

更多dsymutil命令请查看:https://llvm.org/docs/CommandGuide/dsymutil.html 

 

// 将/Users/kekec/crash目录中所有文件打包到size为10m、Volume名为MyDmg的/Users/kekec/tmp.dmg中

hdiutil create -srcfolder "/Users/kekec/crash" -volname "MyDmg" -fs HFS+ -fsargs "-c c=64,a=16,e=16" -format UDRW -size 10m "/Users/kekec/tmp.dmg" 

hdiutil attach -readwrite -noverify -noautoopen "/Users/kekec/tmp.dmg"  // 以可读写、非验证、不自动打开的方式对/Users/kekec/tmp.dmg进行挂载   注:挂载后,对应/Volumes/MyDmg目录

hdiutil detach /Volumes/MyDmg  // 卸载/Volumes/MyDmg

hdiutil convert "/Users/kekec/tmp.dmg" -format UDZO -imagekey zlib-level=9 -o "/Users/kekec/test"  // 将/Users/kekec/tmp.dmg压缩并转化为UDZO格式,然后写文件到/Users/kekec/test.dmg

 

open /System/Applications/Utilities/Console.app  // 打开控制台   注:这儿还有一款类似功能的软件:iOS Console

macOS常用命令macOS常用命令

 

// 启动MyTest1项目的ue4编辑器

open -a /Users/kekec/CodeTest/UnrealEngine/Engine/Binaries/Mac/UE4Editor-Mac-Debug.app/Contents/MacOS/UE4Editor-Mac-Debug --args "/Users/kekec/CodeTest/MyTest1/MyTest1.uproject" 
 
// 单机启动MyTest1项目的ThirdPersonExampleMap地图
open -a /Users/kekec/CodeTest/UnrealEngine/Engine/Binaries/Mac/UE4Editor-Mac-Debug.app/Contents/MacOS/UE4Editor-Mac-Debug --args "/Users/kekec/CodeTest/MyTest1/MyTest1.uproject /Game/ThirdPersonCPP/Maps/ThirdPersonExampleMap -game -windowed -ResX=1280 -ResY=720"  

 

xcrun dwarfdump --uuid MyGame.dSYM  // 查看dSYM符号文件的UUID。显示如下信息:

UUID: 26D77D79-C734-303D-9223-7C1A6EB8374F (arm64) MyGame.dSYM/Contents/Resources/DWARF/MyGame

xcrun dwarfdump --uuid MyGame  // 查看MyGame可执行文件的UUID。显示如下信息:

UUID: 26D77D79-C734-303D-9223-7C1A6EB8374F (arm64) MyGame

 

xcrun dwarfdump --uuid MyGame.dSYM | cut -d" " -f2 // 查看dSYM符号文件的UUID。显示如下信息  注:使用空格分隔,显示第2个字符串

26D77D79-C734-303D-9223-7C1A6EB8374F

 

xcrun dwarfdump --show-section-sizes ./MyGame.dSYM/Contents/Resources/DWARF/MyGame // 打印符号表MyGame中段的信息

----------------------------------------------------
file: ./MyGame.dSYM/Contents/Resources/DWARF/MyGame
----------------------------------------------------
SECTION           SIZE (b)
----------------  --------
__apple_names           36 (0.00%)
__apple_types           48 (0.00%)
__debug_abbrev           1 (0.00%)
__apple_namespac        36 (0.00%)
__debug_str              1 (0.00%)
__apple_objc            36 (0.00%)

 Total Size: 158  (0.00%)
 Total File Size: 142430366
----------------------------------------------------

 

注:xcrun全称为command-line tool runner,是Xcode的基本命令行工具,使用它可以基于当前的Xcode版本环境(机器上可以装多个版本的Xcode,通过xcode-select来选择某个版本作为当前版本)来调用其他命令

更多dwarfdump的信息见:https://llvm.org/docs/CommandGuide/llvm-dwarfdump.html 

 

xcrun actool --output-format human-readable-text --notices --warnings --output-partial-info-plist '/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/assetcatalog_generated_info.plist' --app-icon AppIcon --product-type com.apple.product-type.application --target-device iphone --target-device ipad --minimum-deployment-target 9.0 --platform iphoneos --enable-on-demand-resources YES --compile '/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app' '/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/Assets.xcassets'

打最低支持ios9的icon资源,会生成Assets.car和AppIcon*.png散文件

/* com.apple.actool.document.notices */
/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/Assets.xcassets:./AppIcon.appiconset/[][ipad][76x76][][][1x][][][]: notice: 76x76@1x app icons only apply to iPad apps target
ing releases of iOS prior to 10.0.
/* com.apple.actool.compilation-results */
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon20x20@2x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon20x20@2x~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon20x20@3x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon20x20~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon29x29@2x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon29x29@2x~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon29x29@3x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon29x29~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon40x40@2x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon40x40@2x~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon40x40@3x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon40x40~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon60x60@2x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon60x60@3x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon76x76@2x~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon76x76~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon83.5x83.5@2x~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/Assets.car
/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/assetcatalog_generated_info.plist

 

xcrun actool --output-format human-readable-text --notices --warnings --output-partial-info-plist '/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/assetcatalog_generated_info.plist' --app-icon AppIcon --product-type com.apple.product-type.application --target-device iphone --target-device ipad --minimum-deployment-target 11.0 --platform iphoneos --enable-on-demand-resources YES --compile '/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app' '/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/Assets.xcassets'

打最低支持ios11的icon资源,会生成Assets.car

/* com.apple.actool.document.notices */
/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/Assets.xcassets:./AppIcon.appiconset/[][ipad][76x76][][][1x][][][]: notice: 76x76@1x app icons only apply to iPad apps target
ing releases of iOS prior to 10.0.
/* com.apple.actool.compilation-results */
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon60x60@2x.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/AppIcon76x76@2x~ipad.png
/Users/admin/UAGroup/R6Game/Binaries/IOS/Payload/UAGame.app/Assets.car
/Users/admin/UAGroup/R6Game/Intermediate/IOS/Resources/assetcatalog_generated_info.plist

 

codesign -d -vvvv /Test.app  // 查看Test程序签名的详细信息。Test程序未签名时,显示如下信息:

Test.app: code object is not signed at all

 

codesign -d -vvvv /Applications/Xcode.app  // 查看Xcode签名的详细信息

Executable=/Applications/Xcode.app/Contents/MacOS/Xcode
Identifier=com.apple.dt.Xcode
Format=app bundle with Mach-O thin (x86_64)
CodeDirectory v=20200 size=469 flags=0x2000(library-validation) hashes=7+5 location=embedded
VersionPlatform=1
VersionMin=658944
VersionSDK=659204
Hash type=sha256 size=32
CandidateCDHash sha1=e7b303a96a38351b6b2a7c4d8117704c82cf28a9
CandidateCDHashFull sha1=e7b303a96a38351b6b2a7c4d8117704c82cf28a9
CandidateCDHash sha256=dd839ddedd3f40999e53e76a2d4e556fcdd46f6c
CandidateCDHashFull sha256=dd839ddedd3f40999e53e76a2d4e556fcdd46f6ce4b6cbbcca50a415820817f6
Hash choices=sha1,sha256
CMSDigest=014acc18a5b1cef7e9133a809c3c189075292bc39062f7dc81418d8d0229d22d
CMSDigestType=2
Page size=4096
CDHash=dd839ddedd3f40999e53e76a2d4e556fcdd46f6c
Signature size=4698
Authority=Apple Mac OS Application Signing
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Info.plist entries=40
TeamIdentifier=APPLECOMPUTER
Sealed Resources version=2 rules=13 files=309580
Internal requirements count=1 size=224

 

codesign -d --entitlements - /Applications/Xcode.app  // 查看Xcode签名中的授权机制entitlements信息

Executable=/Applications/Xcode.app/Contents/MacOS/Xcode
??qq?<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>com.apple.PairingManager.Read</key>
	<true/>
	<key>com.apple.PairingManager.RemovePeer</key>
	<true/>
	<key>com.apple.PairingManager.Write</key>
	<true/>
	<key>com.apple.application-identifier</key>
	<string>59GAB85EFG.com.apple.dt.Xcode</string>
	<key>com.apple.authkit.client.private</key>
	<true/>
	<key>com.apple.developer.aps-environment</key>
	<string>production</string>
	<key>com.apple.developer.maps</key>
	<true/>
	<key>com.apple.dt.simulator.client</key>
	<true/>
	<key>com.apple.private.coreservices.definesExtensionPoint</key>
	<true/>
	<key>com.apple.private.dt.xcode.set-responsible-process-for-ui-testing</key>
	<true/>
	<key>com.apple.private.syspolicy.execution-policy-bypass</key>
	<true/>
	<key>com.apple.private.tcc.allow</key>
	<array>
		<string>kTCCServiceAppleEvents</string>
		<string>kTCCServicePhotos</string>
		<string>kTCCServiceDeveloperTool</string>
	</array>
	<key>com.apple.private.tcc.allow-prompting</key>
	<array>
		<string>kTCCServiceAll</string>
	</array>
	<key>com.apple.sysmond.client</key>
	<true/>
</dict>
</plist>

 

security find-identity -v -p codesigning  // 查看当前机器上拥有有效的私钥证书(即可用来给程序签名的证书)

1) 2E54C48AF11C373978B9E57F121335128756B259 "iPhone Developer: zhong jianbin (Y68J4BC8T9)" (CSSMERR_TP_CERT_REVOKED)
2) 71CB408548CBAAB125F00854532134D8FA140766 "Apple Development: zhong jianbin (Y68J4BC8T9)"
   2 valid identities found

 

codesign -f -s "iPhone Developer: zhong jianbin (Y68J4BC8T9)" Test.app  // 强制使用"iPhone Developer: zhong jianbin (Y68J4BC8T9)"对Test.app进行签名(若之前有签名,则进行覆盖)。注:签名之后没有输出,说明签名正确。如果有错误,会输出错误的

codesign -f -i com.tencent.mf.test1 -s "iPhone Developer: zhong jianbin (Y68J4BC8T9)" Test.app // 修改Test.app的Identifier(即:bundle id)为com.tencent.mf.test1   注:Xcode的Identifier为com.apple.dt.Xcode

codesign -f -o 0x2200 -s  "iPhone Developer: zhong jianbin (Y68J4BC8T9)" Test.app  // 修改Test.app的flag为0x2200   注:Xcode的flag为0x2000

 

security cms -D -i "MyGamePP.mobileprovision" > "entitlements_full.plist"  // 从pp文件中提取详细的entitlements信息  entitlements_full.plist内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AppIDName</key>
    <string>App all</string>
    <key>ApplicationIdentifierPrefix</key>
    <array>
    <string>L3E7KQ25LR</string>
    </array>
    <key>CreationDate</key>
    <date>2020-07-09T01:50:30Z</date>
    <key>Platform</key>
    <array>
        <string>iOS</string>
    </array>
    <key>IsXcodeManaged</key>
    <false/>
    <key>DeveloperCertificates</key>
    <array>
        <data>MIIFmjCCBIKgAwIBAgIITnLDUpKR25UwDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAwNzA5MDEzNzU4WhcNMjEwNzA5MDEzNzU4WjCBjTEaMBgGCgmSJomT8ixkAQEMCkY1NDVUMjdaMkIxNTAzBgNVBAMMLGlQaG9uZSBEZXZlbG9wZXI6IHpob25nIGppYW5iaW4gKFk2OEo0RUhRVDkpMRMwEQYDVQQLDApMM0U3S1EyNUxSMRYwFAYDVQQKDA16aG9uZyBqaWFuYmluMQswCQYDVQQGEwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALKDXr4XjSXhdbnl0kI+k4WUKVbxsBlg3Ja2cviNdCv91qImIVpANKNjP0GVMJ01S5TYqsOROm2N5qRliPLVe31ZHyp+C1tKUbFekhB5lhTo7jRZBnas/LhVRcvqDUBrnF7iB9DCM1MJs8ivvX7rg23JesfhfbvILX2pyFcVPpz0ee6W8b5DupWhE0YXdsB+RJ2Iwqt7x9eCCE7dCh9xNdXq75QAw2Jtep4aYgimxl+svdeBAguQ3teAWhK3uynQabZkKz3q/+bGJEiwphdCullhWRGhHzXtThifnie9qbEtdK5l5fbBpda6ylKEmR2I9LCVL3FKuB8VpwJN01nQ34cCAwEAAaOCAfEwggHtMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwPwYIKwYBBQUHAQEEMzAxMC8GCCsGAQUFBzABhiNodHRwOi8vb2NzcC5hcHBsZS5jb20vb2NzcDAzLXd3ZHIwMTCCAR0GA1UdIASCARQwggEQMIIBDAYJKoZIhvdjZAUBMIH+MIHDBggrBgEFBQcCAjCBtgyBs1JlbGlhbmNlIG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudHMuMDYGCCsGAQUFBwIBFipodHRwOi8vd3d3LmFwcGxlLmNvbS9jZXJ0aWZpY2F0ZWF1dGhvcml0eS8wFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFC6C70GaKf2rjBgj0sMi+f3tQH6dMA4GA1UdDwEB/wQEAwIHgDATBgoqhkiG92NkBgECAQH/BAIFADANBgkqhkiG9w0BAQsFAAOCAQEAivKGrapsdODR/Hs8JImuC9ttLKv2ejpnRBm9cV+u+XeszvxUl8kAw9n2of3KC5JwmY5rPFgn1uzaIHF/wWSE31hBE8fuf+0GvC4/mWX8mUUJBRVZ1sgY3Z6W+0W3GqcAnwdzJEfGdyJVVyXkoHhHfnqM6ACTvdWjynD0TpdSSpAMo4w9TH1or3j7wt39tDDLH5a5WtzZHWnMAIhGPu3Xs0gQdvKxKGP0tZ9GpV6ZAZKRXaPqUTQTgBNuNJQr0XOZ3l0BmzkbQVMEIoKfvCI1ZxwFbd34eBN+GZNXwHEtt1CAS588VTZASHMNC/jnocgFtD+1Mh3cXLbCeaTH6q22Ug==</data>
        <data>MIIFsDCCBJigAwIBAgIIWQCxpMbgGiMwDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAwNjEwMDE1NjEyWhcNMjEwNjEwMDE1NjEyWjCBjjEaMBgGCgmSJomT8ixkAQEMCkY1NDVUMjdaMkIxNjA0BgNVBAMMLUFwcGxlIERldmVsb3BtZW50OiB6aG9uZyBqaWFuYmluIChZNjhKNEVIUVQ5KTETMBEGA1UECwwKTDNFN0tRMjVMUjEWMBQGA1UECgwNemhvbmcgamlhbmJpbjELMAkGA1UEBhMCQ04wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQConrFeucNOBY/kJscD0pMA01PnifZaLKA2PUPAZtkwnlfoLA0YGr+Beds6rS/Imq7N7Akxj+aI8QDTluaPBEiVzprXxYXK5chs5Si2+BRbbRxbKtdTVZjxdABNdWc2LW5CTnHj1EcfhTN0tBZCW+aBU7qhRCgYAchwTeYBcrVXBOyQJgRxEf1A3qCFradVGyseK1nEc6WnRonUQEnxdn2Ec+CLgQwaJhRiN1PqG8Wwf9wwzJGzvhDLLd3Fbx2V75M58CImLDZ9oJwH0e4Nc9jCFNAupdwI/Slf0d6peKV4DzzJ/qDIWO2jagTm/FH+UsGW6eulfkpecqfZks66FHKDAgMBAAGjggIGMIICAjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFIgnFwmpthhgi+zruvZHWcVSVKO3MD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyMTkwggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQcLYdw0bsUXTusOmBipBZuN2HdajAOBgNVHQ8BAf8EBAMCB4AwEwYKKoZIhvdjZAYBAgEB/wQCBQAwEwYKKoZIhvdjZAYBDAEB/wQCBQAwDQYJKoZIhvcNAQELBQADggEBAACFE6nHco8ZFcFzRh/jH6opROpTvwjSZJrlunTyPDrHVAh/nSUas6WT+pfjJoEY+LKxBxVsQvRL68sUI32PGXBaRsDhDZErxYFnZvfuuSIb1jMrqUVnQ4B4WjgZctPAcWPXwEmTW+ZVqGgdn9IrqcTwGXc8dRgogsugtBSD324iorVy2q+wxXWPGYIYYYSnvBSmqH+NkYGqyYEM+R7NrNjeqPPJE71zvZ27g1uZCzEeqMoVhKyBfhUGFdT6r8iftpx9r4zRBwY5eEVcOPUIt0NHGiYQbjqw1APGA24G+aO7YsKYHolJBZUeerJoBF0Z3PubIsHceZtv3ewEAijZrMY=</data>
        <data>MIIFsDCCBJigAwIBAgIIOwoKa3l9nGMwDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAwNjIyMDMyNDQ0WhcNMjEwNjIyMDMyNDQ0WjCBjjEaMBgGCgmSJomT8ixkAQEMCkY1NDVUMjdaMkIxNjA0BgNVBAMMLUFwcGxlIERldmVsb3BtZW50OiB6aG9uZyBqaWFuYmluIChZNjhKNEVIUVQ5KTETMBEGA1UECwwKTDNFN0tRMjVMUjEWMBQGA1UECgwNemhvbmcgamlhbmJpbjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFlb2osOUca3JmPZnT3y2f2MzI+I9Z4dtvUpXDcXcdgKAMsAx7dHoWCCFY6wqi6eFpZniKWZk1/Krezk+KN0+EBFooDSjh5KXu1aM4VLbNXz6WJgjrDy2VE1sbaDP4/7bHFgRaUHLkxGEk+cAUwXhVpe947dOYxk1vE4phTWl1GKdSGB73XN/oqb152IpCdZbwV9eRghXbsXBIAu7uPGt/598JBQGEsKOMzmTyo0jNqpdCfxpZOPoZiSufl7lT5LEdXeoyEBweh3F2Sdd/mo28Q/1f01+IFGVv9/AQDKJguTWbNI6fsaUgxNCLXoZic0p+qnM9ZvDr0wI7r5UHXOFFAgMBAAGjggIGMIICAjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFIgnFwmpthhgi+zruvZHWcVSVKO3MD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyMTkwggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBR27oMYYWYk4s6QWZoqhrtVfNkPiDAOBgNVHQ8BAf8EBAMCB4AwEwYKKoZIhvdjZAYBAgEB/wQCBQAwEwYKKoZIhvdjZAYBDAEB/wQCBQAwDQYJKoZIhvcNAQELBQADggEBAAj8yMH4lhRPS3Oa0bxhZ+wSC4Sbu6/MmyTWJ4LSAPM6t79tCfeMTfU5jpHjvbkCVBH6+NnVhTruvy3kuulxzWLtVR8dwzV3N3MdLzbu3SZYCOx85OaNmea9Y28AUXkvQj6xaqKNJ4L4VkOXnEp0LeHRkFRhwYQFj2ydEXhr4SFyt5Msm4EI5k/MtbRl+oDcKTLL4khYgXoCjGGTR+NHsGlHQBVNXSP5j+nwbuwq8fQUrGkdfiwhGNXTJOIQky3X3RrqR5CQta0MX46tUm6eiADHc9VG2LQQVLUcmk80fAtKxgITmi569IJHIWD8etDoJ357TnguZTBADZMING/ybos=</data>
        <data>MIIFsDCCBJigAwIBAgIIW27PjARhS+QwDQYJKoZIhvcNAQELBQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjAwNzA5MDEzNDU4WhcNMjEwNzA5MDEzNDU4WjCBjjEaMBgGCgmSJomT8ixkAQEMCkY1NDVUMjdaMkIxNjA0BgNVBAMMLUFwcGxlIERldmVsb3BtZW50OiB6aG9uZyBqaWFuYmluIChZNjhKNEVIUVQ5KTETMBEGA1UECwwKTDNFN0tRMjVMUjEWMBQGA1UECgwNemhvbmcgamlhbmJpbjELMAkGA1UEBhMCQ04wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyg16+F40l4XW55dJCPpOFlClW8bAZYNyWtnL4jXQr/daiJiFaQDSjYz9BlTCdNUuU2KrDkTptjeakZYjy1Xt9WR8qfgtbSlGxXpIQeZYU6O40WQZ2rPy4VUXL6g1Aa5xe4gfQwjNTCbPIr71+64NtyXrH4X27yC19qchXFT6c9HnulvG+Q7qVoRNGF3bAfkSdiMKre8fXgghO3QofcTXV6u+UAMNibXqeGmIIpsZfrL3XgQILkN7XgFoSt7sp0Gm2ZCs96v/mxiRIsKYXQrpZYVkRoR817U4Yn54nvamxLXSuZeX2waXWuspShJkdiPSwlS9xSrgfFacCTdNZ0N+HAgMBAAGjggIGMIICAjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFIgnFwmpthhgi+zruvZHWcVSVKO3MD8GCCsGAQUFBwEBBDMwMTAvBggrBgEFBQcwAYYjaHR0cDovL29jc3AuYXBwbGUuY29tL29jc3AwMy13d2RyMTkwggEdBgNVHSAEggEUMIIBEDCCAQwGCSqGSIb3Y2QFATCB/jCBwwYIKwYBBQUHAgIwgbYMgbNSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRlIHBvbGljeSBhbmQgY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5hcHBsZS5jb20vY2VydGlmaWNhdGVhdXRob3JpdHkvMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBQugu9Bmin9q4wYI9LDIvn97UB+nTAOBgNVHQ8BAf8EBAMCB4AwEwYKKoZIhvdjZAYBAgEB/wQCBQAwEwYKKoZIhvdjZAYBDAEB/wQCBQAwDQYJKoZIhvcNAQELBQADggEBAC4SFOCYi0CGhUg37l1uTdSl3Wdvr9RHXeBVs4F1j/B99F6+AA+fcIBAdpG5b7x4Qe64uAzJw37NGjMS8KT0o96iy6nTduC+WQdy07A9jWdYAm8Gg4DjsOir7LqDajRMzVAu0ZWKr1Vo3XMZtF3zBVjCwqWRDgnIyVIb7JEZhfQ4Nk3FCW0SkkMbtU2fVrG+kRGdJ/A3AWtOKw0Ud+wLksFW7znSNQMHZulBza2/Tn9241RxDTthJWfoQsq9HE27EMnGS5Y9V8x9/sVyNdu6y6Ok3+HX3Ss9XVWrQXy4LsUsYWVwVumyCaDMzjaakGd9+C4RhpVlSeeacej5oadO1EU=</data>
    </array>

                                
    <key>Entitlements</key>
    <dict>
                
                <key>application-identifier</key>
        <string>L3E7KQ25LR.com.*</string>
                
                <key>keychain-access-groups</key>
        <array>
                <string>L3E7KQ25LR.*</string>
                <string>com.apple.token</string>
        </array>
                
                <key>get-task-allow</key>
        <true/>
                
                <key>com.apple.developer.team-identifier</key>
        <string>L3E7KQ25LR</string>

    </dict>
    <key>ExpirationDate</key>
    <date>2021-07-09T01:50:30Z</date>
    <key>Name</key>
    <string>UAGamePP</string>
    <key>ProvisionedDevices</key>
    <array>
        <string>00008030-000435A80A91802E</string>
        <string>ef517a56e81ebcc95af428943981c0a57f765756</string>
        <string>fb64c4fdd3ad6b276e2b82d39f0d3c21ff6a3033</string>
        <string>51bd0b61cb2bdb8b8ede964cdadac21c948fc13a</string>
        <string>0f3f1a4430543305f21f17cb49d0c4bebd91ef63</string>
        <string>d5d8446663220fbe74aa37bc6afc3afb89ed6307</string>
        <string>00008020-000E35C03446002E</string>
        <string>00008030-001C6D391A84802E</string>
        <string>00008030-000D559C1EBA802E</string>
    </array>
    <key>TeamIdentifier</key>
    <array>
        <string>L3E7KQ25LR</string>
    </array>
    <key>TeamName</key>
    <string>zhong jianbin</string>
    <key>TimeToLive</key>
    <integer>365</integer>
    <key>UUID</key>
    <string>700539a1-132d-4ebc-9753-e9e56fcd6173</string>
    <key>Version</key>
    <integer>1</integer>
</dict>
</plist>

 

/usr/libexec/PlistBuddy -x -c 'Print:Entitlements'  entitlements_full.plist > entitlements.plist  // 从详细的entitlements_full.plist文件中提取entitlements文件所需的那部分内容   entitlements.plist的内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>L3E7KQ25LR.com.*</string>
    <key>com.apple.developer.team-identifier</key>
    <string>L3E7KQ25LR</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>L3E7KQ25LR.*</string>
        <string>com.apple.token</string>
    </array>
</dict>
</plist>

注:get-task-allow为是否允许调试器调试该app的flag。为true允许调试,为false表示关闭调试(app要Distribution时需设置成该值)

 

codesign -f -s 'iPhone Developer: zhong jianbin (Y68J4BC8T9)' --entitlements ./entitlements.plist  ./Payload/MyGame.app/   // 使用当前目录的entitlements.plist文件对./Payload/MyGame.app/目录中的内容进行签名

 

sudo spctl --master-disable   // 在MacOS BigSur等权限管理严格的系统上,将GateKeeper disable掉

sudo spctl --master-enable  // 在MacOS BigSur等权限管理严格的系统上,将GateKeeper设置成enable

spctl --status  // GateKeeper disable掉时,会打印:assessments disabled    GateKeeper enable时,会打印:assessments enabled

macOS常用命令

 

注:disable掉GateKeeper,会显示出“任何来源”按钮;enable掉GateKeeper,会隐藏出“任何来源”按钮

 

vmmap -interleaved 50114 // 查看进程id为50114的内存映像信息

 

sysctl -a | grep page // 查看内存page相关的值

kern.vm_page_free_min: 3500
kern.vm_page_free_reserved: 788
kern.vm_page_free_target: 4000
kern.vm_page_speculative_percentage: 5
kern.vm_page_speculative_q_age_ms: 500
vm.vm_page_background_count: 782360
vm.vm_page_background_exclude_external: 0
vm.vm_page_background_external_count: 27986
vm.vm_page_background_internal_count: 754374
vm.vm_page_background_mode: 1
vm.vm_page_background_promoted_count: 987732
vm.vm_page_background_target: 50000
vm.vm_page_external_count: 4531948
vm.vm_page_filecache_min: 4239297
vm.vm_page_xpmapped_min: 574137
vm.vm_pageout_considered_bq_external: 454224
vm.vm_pageout_considered_bq_internal: 11301035
vm.vm_pageout_rejected_bq_external: 0
vm.vm_pageout_rejected_bq_internal: 0
vm.apple_protect_pager_cache_limit: 20
vm.apple_protect_pager_count: 5
vm.apple_protect_pager_count_mapped: 5
vm.iopl_pages_tainted: 0
vm.kern_lpage_count: 474
vm.page_busy_absent_skipped: 0
vm.page_cleaned_count: 0
vm.page_free_count: 1569690
vm.page_free_wanted: 0
vm.page_pageable_external_count: 4531948
vm.page_pageable_internal_count: 7999406
vm.page_purgeable_count: 52643
vm.page_purgeable_wired_count: 32
vm.page_reusable_count: 4695302
vm.page_speculative_count: 1574608
vm.pageout_freed_cleaned: 128596
vm.pageout_freed_external: 9270417
vm.pageout_freed_speculative: 25616083
vm.pageout_inactive_clean: 47800073
vm.pageout_inactive_dirty_external: 63358
vm.pageout_inactive_dirty_internal: 80728808
vm.pageout_inactive_used: 12862278
vm.pageout_speculative_clean: 25616083
vm.pages: 16416185
vm.pagesize: 4096
vm.prefault_nb_pages: 0
vm.retired_pages_count: 0
vm.reusable_pages_shared: 88756
vm.shared_region_pager_copied: 0
vm.shared_region_pager_reclaimed: 40948
vm.shared_region_pager_slid: 60108
vm.shared_region_pager_slid_error: 0
vm.upl_pages_tainted: 0
vm.vm_create_upl_extra_cow_pages: 107
vm.vm_do_collapse_compressor_pages: 141
vm.vm_page_free_target: 4000
hw.pagesize: 4096
hw.pagesize32: 4096

 

pagesize //查看当前系统的页面大小 macOS为4096,iOS为16384  注:iOS系统中,基于A7和A8处理器的系统,物理内存按照4KB分页,虚拟内存按照16KB分页。A9及以后,物理和虚拟内存都是以16KB进行分页。

 

参考

iOS软件包ipa重签名详解

如何使用命令行签名

代码签名探析

 

相关文章:

  • 2021-10-05
  • 2021-09-01
  • 2021-09-08
  • 2021-04-26
  • 2021-11-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-02
  • 2022-01-25
  • 2021-10-03
  • 2021-10-17
  • 2021-10-04
相关资源
相似解决方案