Posts

Post not yet marked as solved
7 Replies
1.7k Views
I have everything associate with on-demand resources working correctly in my application with the exception of the ability to cancel, pause or resume downloading ODR content. Using Xcode 9.4.1 with iOS 11.4 target, the cancel, pause, etc. IBAction is called when a tap occurs, but the progress bar continues unabated. The ODR progress observer completes too. I've seen code like this:class ODRManager {var myCollectionRequest: NSBundleResourceRequest?@IBAction func cancelLoadingOnDemandResource(_ sender: UIButton) { guard let myCurrentRequest = myCollectionRequest else { return } myCurrentRequest.progress.cancel() }}But such code doesn't cancel/pause the NSBundleResourceRequest. I found a radar report dated Jan. 12, 2016 indicating the same problem. Is it possible to cancel, pause or resume a NSBundleResourceRequest download? If so, how is it done?Thank you.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
0 Replies
265 Views
Should I expect to have to adjust my OpenSSL on-device receipt verification code for pointer authentication used by the arm64e architecture? If so, could you please provide a brief summary of the changes needed? Thank you.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
1 Replies
981 Views
When I created a new storyboard in my project, I placed it in the Base.lproj folder. Upon localizing the storyboard, I discovered that its path became Base.lproj/Base.lproj. The location for the storyboard is relative to group.Although the new storyboard is available when I localize for a new language, the Base.lproj/Base.lproj seem odd. I cannot find a way to move the storyboard so its path excludes the second Base.lproj in the path. Should I be concerned about this?I'm using Xcode 10.3 and building for iOS 12.4.Thank you.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
1 Replies
1.5k Views
My iOS 13.2 Swift app is a type of SceneKit editor which uses Core Data to persist user edits. I'm wondering if Core Data might be associated with the message below since NSManagedObject is a subclass of NSObject and since a test app I created without Core Data does not cause the message to be displayed.Although I haven't subclassed any SceneKit classes which support NSSecureCoding, and no other classes in the app use NSSecureCoding, the following message is displayed when a SCNScene is displayed in a SCNView:[general] NSSecureCoding allowed classes list contains [NSObject class], which bypasses security by allowing any Objective-C class to be implicitly decoded. Consider reducing the scope of allowed classes during decoding by listing only the classes you expect to decode, or a more specific base class than NSObject.This message is displayed only once even though a SCNScene can be reopened multiple times to reflect the user's edits. Possible Causes1. Some of the Core Data entities contain binary data properties used to display thumbnail images. However, when I comment-out the code associated with creating/displaying the thumbnails, the above message is still displayed. The thumbnail data is created with the following code which returns an optional data object. I wonder about this, because Swift bridges to NSData which is a subclass of NSObject.static func createNonCachedItemThumbnailData(item: Item) -> Data? { let appDelegate = UIApplication.shared.delegate as! AppDelegate let dataSource = appDelegate.dataSource guard let selectedDesign = dataSource.selectedDesign else { return nil } let resourceSubdirectoryName = selectedDesign.uniqueID! guard let bundleURL = Bundle.main.url(forResource: item.uniqueID!, withExtension: "png", subdirectory: resourceSubdirectoryName + ".scnassets") else { return nil } guard let imageSource = CGImageSourceCreateWithURL(bundleURL as CFURL, nil) else { return nil } /* maxDimension is the lesser of the width or height of the UIImageView in ItemSCNNodeSelectionViewCell. */ let maxDimension: CGFloat = 64.0 let options: [NSString: Any] = [ kCGImageSourceThumbnailMaxPixelSize: maxDimension, kCGImageSourceCreateThumbnailFromImageAlways: true] guard let scaledImage = CGImageSourceCreateThumbnailAtIndex(imageSource, 0, options as CFDictionary) else { return nil } return UIImage(cgImage: scaledImage).pngData() }2. One of the Core Data entities uses NSKeyedArchiver/NSKeyedUnarchiver to archive SCNMaterial as binary data. I didn't use the transformable type for this property, because I read that the transformable type doesn't notice changes when the context is saved. This code seems far from the problem, but the compiler may have noticed it.Any help would be appreciated.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
1 Replies
330 Views
When I run my iOS 13.2 SceneKit app using the iPad Pro 11" simulator (Version 11.2.1) on Xcode 11.2.1, the scene is cropped on the top and bottom. I'm trying to find the correct way to accomodate the unique aspect ratio of the iPad Pro 11" such that no cropping occurs. Allowing camera control in my app really isn't appropriate.My app allows the SCNView to be zoomed; so my first thought was to check the constraints. The view hierarchy is as follows: A UINavigationController hosts three UIContainerViews. One of the containerViews hosts a UIViewController subclass instance. A UIScrollView's top, bottom, leading and trailing constraints are set to the safe area of that viewController's view. A SCNView's top, bottom, leading and trailing constraints are set to the safe area of the scrollView. The width constraint priority of the SCNView is 1000. The height constraint priority of the SCNView is 250. These settings allow correct display on all simulators except the iPad Pro 11".The only solution that occurs to me is to add a control which allows the camera to be moved on the z-axis. Is there a better solution?Thank you.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
0 Replies
191 Views
Is it possible to control which built-in actions appear in the UIDocumentBrowserActionAvailabilityMenu / UIDcoumentBrowserActionAvailabilityNavigationBar associated with a UIDocumentBrowserViewController?I'd like to convert my app's custom browser to the UIDocumentBrowserViewController. Although I'm new to UIDocumentBrowserViewController, its sharing feature seems inconsistent with selling in-app purchases which, in my app, can be represented as a documents.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
1 Replies
698 Views
If I use Xcode 10.1's SceneKit editor to add a SCNPlane to the scene and then assign a .png image as the diffuse material, a thin line appears at the top edge of the plane when the scene is rotated on the x and y axes. When I attempt to remove the axes rotations and view the scene from the front, the line disappears. All other material properties are left at their default values. Changing the lighting model does not cause the line to disappear.The deployment target is iOS 12.1. No third party 3D editing software is involved with this problem. The image was created in Adobe's Photoshop with transparency and the line appears in the scene when images of various sizes are tested.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
1 Replies
815 Views
I need help in trying to understand why my iOS 12.1 app is not saving runtime edits to SCNMaterials and SCNLights. Here's the setup:After creating assets in Blender 2.79b, I exported the .dae file to a .scnassets folder and copied that folder into the app. Then I converted the .dae file to .scn via Xcode 10.1. All of the assests appear correctly when the app is run. However, any SCNLights added to the SCNScene or changes to a SCNMaterial's color are not saved.SCNScene's write(to: options: delegate:) returns true and the delegate reports Error: nil. I've tried adding SCNSceneSource.LoadingOption.strictConformance.rawValue : true as an option. But doing so has no effect. The string for the URL used in write(to: options: delegate:) is persisted in an instance of a Core Data entity.Any help would be greatly appreciated.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
0 Replies
838 Views
My iOS 12.1 app uses dynamic lighting where the user can create/delete a limited number of SCNLights. The UITableView is managed by a NSFetchedResultsController. The app's code worked without error until I updated the operating system. Then, it began randomly crashing with Execution of the command buffer was aborted due to an error during execution. Caused GPU Hang Error (IOAF code 3 / 4)) errors. The errors occur when deleting SCNLights from the UITableView.The CPU is running at 1% and the maximum value is 23%. FPS is 60. Maximum memory useage is 120 MB.I've enabled Malloc Scribble and Guard Malloc. The IOAF code 3 / 4 errors are the only ones received. I don't understand what's wrong or how to debug the problem.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
3 Replies
3.1k Views
I don't recall the sample SpriteKit and SceneKit (Hello World and rotating jet plane) projects requiring so much memory prior to iOS 12. Using Xcode 10.0, memory debug indicates requirements of 73.9MB and 63MB respectively for these example projects. My app assigns an overlaySKScene to a SCNView; so its memory requirements are much higher than what I'm accustomed to seeing. Have I missed something?Thank you.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
0 Replies
1.2k Views
The documentation for SceneKit's write(to: options: delegate: progressHandler:) indicates the function exports the scene and its contents. Does this function archive a stand alone copy of the scene or does it create references to data possibly stored elsewhere? I'm not using external resources; so there's no need to include the assetDirectoryURLs option.My application uses on-demand resources with a twist. The resources are editable in the app; so I'm using write(to: options: delegate: progressHandler:) to persist the scene for subsequent editing in a later session. But if the ODR resources are deallocated and write(to: options: delegate: progressHandler:) has references to those ODR resources, the values for those references will me missing.Thank you.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
7 Replies
2.3k Views
I've managed to compile openssl-1.1.0h, but I don't know how to combine the files into a single fat file. The folder names are:iPhoneOS11.4-arm64.sdiPhoneOS11.4-armv7.sdkiPhoneOS11.4-armv7s.sdkiPhoneSimulator11.4-i386.sdkiPhoneSimulator11.4-x86_64.sdkI'm trying to do on-device in-app purchase receipt validation and I believe I need help with the lipo command. I'm using Xcode 9.4.1 and the application target is iOS 10.3. Thank you.
Posted
by cfromns.
Last updated
.
Post not yet marked as solved
0 Replies
283 Views
I'm using XCode 9.4 to create an in-app purchase content target within my iOS 10.3 application. Target content has been tagged and added at the same level as the ContentInfo.plist. In build settings Enabled ODR is set to yes for the project and the target. Futrher, embeded asset packs in product bundle is set to yes for the project and resolves to yes. The IAP's ContentInfo.plist/IAPProductIdentifier matches the Product ID in iTunesConnect and I've checked the name of the ODR tag used to fetch the data.The status of the IAP is waiting for upload in iTunesConnect. The app has not yet been submitted for review. I've thought about solving the "not built" problem by creating the IAP content as a project rather than a target, but then I couldn't access the IAP, because the app hasn't been submitted for review. My goal is to locally test the IAP using XCode's ODR server.If I make the target active and build it, the resource tag pane indicates the resources have not been built (ie. "Resource Name" (not bulit)). The IAP resources aren't found when the app is run. The app also uses on-demand resources and is able to find other ODR data that is not part of the aforementioned IAP target.Where am I going wrong?
Posted
by cfromns.
Last updated
.
Post marked as solved
2 Replies
1.4k Views
I hope it's acceptable to ask this question here. No one has answered my question elsewhere and I really need an answer.When I profile my app using instruments / allocations and hide system libraries, liboainject.dylib is also displayed. I stop instruments and select File / Symbols. liboainject.dylib is displayed next to a yellow-colored dot. The binary path for liboainject.dylib is:/Developer/Library/PrivateFrameworks/DVTInstrumentsFoundation.framework/liboainject.dylibI'm concerned about liboainject.dylib, because the path doesn't seem to exist. I've seen a web reference to the DVTInstrumentsFoundation.framework that was located in a SharedFrameworks folder, but nothing associated with PrivateFrameworks. liboainject.dylib might be a part of Instruments. What is liboainject.dylib? Should I be concerned about it?
Posted
by cfromns.
Last updated
.
Post marked as solved
4 Replies
857 Views
Using on-demand resources in conjuction with in-app purchases is understandable when resources are included with the application. But how do I add additional in-app purchases after the application is on the store? I'm not referring to the process of creating a new in-app purchase in iTunesConnect. I'm trying to understand if i create a target for a new in-app purchase on the original app and upload the target to the app store if that data will be available for use as an in-app purchase. The WWDC videos indicate there two ways to host in-app purchases: on-demand resources and hosted content. I can't find any explanation
Posted
by cfromns.
Last updated
.